On 6/20/15 10:26 PM, Yuxuan Shui wrote:
On Sunday, 21 June 2015 at 01:26:51 UTC, Adam D. Ruppe wrote:
On Saturday, 20 June 2015 at 01:50:11 UTC, Yuxuan Shui wrote:
auto ref R) is indeed a template function, so I don't understand.

But R is not a parameter on the function itself. It comes from the
outside template.

Move it to the inside template, rewrite it as:

    auto a(S, R)(auto ref R i) {
        return cast(S)i*2;
    }

and you should get further.

But surely nested template should be able to access outer template's
parameter.

If you have to instantiate it to see how to instantiate it, it doesn't work. General rule of thumb on templates. IFTI only works at one level.

-Steve

Reply via email to