Custom attributes (again)
Ary Manzana
ary at esperanto.org.ar
Thu Apr 5 20:30:22 PDT 2012
On 4/6/12 1:35 AM, 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.
>
> At the Lang.NEXT conference over the last 3 days, I was able to talk to
> many smart people about attributes. But I did find some confusion - are
> they best attached to the variable/function (i.e. "storage class"), or
> attached to the type ("type constructor")? I think the former. Attaching
> it to the type leads to all sorts of semantic issues.
I don't understand the difference between "storage class" and "type
constructor". I guess I do. But my answer is the same as deadalnix: they
are attached to declarations (at compile time).
Can you give us an example of the confusion that arose? I can't
understand it without examples.
I think it should work like this:
@custom
class Foo {
@ custom
void bar() { }
void baz() { }
}
class Other {}
__traits(hasAttribute, Foo, 'custom') --> true
__traits(hasAttribute, Other, 'custom') --> false
// I have no idea how to iterate the members of Foo, or get a reference
to the "bar" method... I can't understand what __traits(getMember)
returns from the docs...
More information about the Digitalmars-d
mailing list