On 08/22/2014 07:47 PM, Yota wrote:

> So what's up with the syntax I tried before?  Has it been
> deprecated?

I don't know the details. I am curious as well.

I think it is related to value template parameters. The first example below fails but the second one works. The only difference is that the one that fails uses a string value parameter like your original code did.

// This program FAILS
struct A(string S)
{}

void foo(T : A!S, string S)(T t)  // <- string value
{}

void main()
{
    auto a = A!"hello"();
    foo(a);
}

// This program WORKS
struct A(S)
{}

void foo(T : A!S, S : int)(T t)  // <- int parameter
{}

void main()
{
    auto a = A!int();
    foo(a);
}

So, I don't know whether it should work but at least the previous programs show that it is indeed possible to specialize using a "deduced parameter" (i.e. S being 'int' in the program that works).

Ali

Reply via email to