V Wed, 10 Dec 2014 11:52:11 +0000
Lemonfiend via Digitalmars-d-learn <[email protected]>
napsáno:

> Consider the following:
> 
> ---
> enum Foo { BAR, }
> 
> mixin template S(string s_)
> {
>       enum s = s_;
> }
> 
> void main()
> {
>       mixin S!(Foo.BAR.stringof); // Error: identifier 'stringof'
> of 'Foo.BAR.stringof' is not defined
> 
>       enum e = Foo.BAR.stringof;
>       mixin S!(e); // works fine
> }
> ---
> 
> Why doesn't the first work? And is there an alternative to the 
> second version?

import std.traits;

enum Foo { BAR, }

mixin template S(string s_)
{
    enum s = s_;
}

void main()
{
    mixin S!(fullyQualifiedName!(Foo.BAR));
    
    enum e = fullyQualifiedName!(Foo.BAR);
    mixin S!(e); // works fine
}

Reply via email to