[Issue 19139] Need a convenient syntax for invoking nested templates
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Sun Aug  5 09:26:22 UTC 2018
    
    
  
https://issues.dlang.org/show_bug.cgi?id=19139
Simen Kjaeraas <simen.kjaras at gmail.com> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |simen.kjaras at gmail.com
           Hardware|x86_64                      |All
                 OS|Linux                       |All
--- Comment #1 from Simen Kjaeraas <simen.kjaras at gmail.com> ---
import std.meta : Instantiate;
template A() {
    template A() {
        enum A = 1;
    }
}
unittest {
    enum i = Instantiate!(A!());
}
Now, that shows it's possible in the language to work around this issue. The
real issue however, is that multiple ! arguments are not allowed.
>From what I can gather on the forum, the reason is a perceived ambiguity, in
that F!T!int could mean F!(T!int) or (F!T)!int. The language already provides
tools to disambiguate between them - the first example is how you'd invoke it
that way, and the other example is simply impossible in the language right now.
--
    
    
More information about the Digitalmars-d-bugs
mailing list