custom attribute proposal (yeah, another one)

Steven Schveighoffer schveiguy at yahoo.com
Mon Apr 9 06:17:28 PDT 2012


On Sat, 07 Apr 2012 07:26:26 -0400, deadalnix <deadalnix at gmail.com> wrote:

> Le 06/04/2012 22:46, Mafi a écrit :
>>> Also, if I see:
>>>
>>> @square(5) int foo();
>>>
>>> How do I know that I have to use __traits(getAttribute, foo, Area)?
>>>
>>> Another possibility:
>>>
>>> @attribute Area area(int w, int h) { return Area(w, h);}
>>> @attribute Area area(Area a) { return a;}
>>>
>>> Area square(int a) { return Area(a, a);}
>>>
>>> @area(5, 5) int foo();
>>> @area(square(5)) int bar();
>>>
>>> -Steve
>>
>> The second possibility looks good. Especially because the lack of
>> @attribute on square disallows @square.
>>
>> Mafi
>
> This is adding code just for the pleasure of adding more code. Why wan't  
> I construct Area directly as attribute ?

See http://forum.dlang.org/post/op.wcct2shqeav7ka@localhost.localdomain

I think you should be able to construct it by @attribute'ing a struct.   
But this sub-thread is about changing the name of the function for  
construction purposes, but keeping the type as the attribute name.

-Steve


More information about the Digitalmars-d mailing list