Custom attributes (again)

Alex Rønne Petersen xtzgzorex at gmail.com
Fri Apr 6 00:36:23 PDT 2012


On 06-04-2012 09:31, Bernard Helyer wrote:
> On Friday, 6 April 2012 at 06:47:56 UTC, Walter Bright wrote:
>> On 4/5/2012 5:00 AM, Manu wrote:
>> > C# and Java both have attributes, following these established
>> design patterns, I
>> > don't think there should be any mystery over how they should
>> be implemented.
>>
>> I was thinking of something along the lines of what has been proposed
>> here earlier:
>>
>> @attr(identifier = expression)
>>
>> as a storage class, like:
>>
>> @attr(foo = bar + 1) int x;
>>
>> and then:
>>
>> __traits(hasAttribute, x, foo)
>>
>> would return true, and:
>>
>> __traits(getAttribute, x, foo)
>>
>> would return the expression (bar+1). The expression would be
>> compile-time only, evaluated at the point of declaration.
>>
>> The implementation is simple enough, just attach to each symbol an
>> array of (identifier,expression) pairs.
>>
>> You could also omit the expression, and just have:
>>
>> @attr(bar) int y;
>
> I like it. Perhaps
>
> @attr(bar)
>
> could be equivalent to
>
> @attr(bar = true)
>
> so you don't get any weird failure state for __traits(getAttribute?
>

While I understand the rationale, that seems a bit too "magic"...

-- 
- Alex


More information about the Digitalmars-d mailing list