On Tuesday, 3 October 2017 at 12:58:47 UTC, sighoya wrote:
On Tuesday, 3 October 2017 at 12:09:04 UTC, rikki cattermole wrote:
On 03/10/2017 1:05 PM, sighoya wrote:
Especially, I mean something like

T<S> foo(S,T)(T<S> i)
{
     ...
}

struct Foo(T) {
        T value;        
}

T!S foo(S, alias T)(T!S v) { return v; }


void main() {
        import std.stdio;       
        writeln(foo!(int, Foo)(Foo!int(1)));
}

Cool, but it seems that only a nesting of two is allowed, right?
This one gives an error:

T!S!R bar(alias T,alias S,R)(T!S!R v) {return v;}
Error: multiple ! arguments are not allowed

That is because you have to wrap multiple with ().
Use
  T!(S!R)
instead.

Reply via email to