On Friday, 14 December 2012 at 05:54:33 UTC, Philippe Sigaud wrote:

Ok, I'll try again. when I was doing it I would get circular referencing
but maybe I did something wrong...


Another possibility is to use `.A`: the (.) prefix means the symbol is looked in the external scope, not inside the template. So the 2-params A is
found.

template A(T)
{
  alias .A!(T, true) A;
}

I guess I'm being dense, I can't seem to get any of the "solutions" to work.


If you don't mind, could you see if your solutions work on the following code:

http://dpaste.dzfl.pl/64025e0a

What I'm trying to do is "hide" the _NestLevel argument of the template(it should always be true).

I can use alias directly as long as the class name is "mangled" but when I try to use templates I can't seem to get it to work.

This is possibly because I want to design the code to work with a variable number of arguments(hence my asking for the number of arguments of a templated class in the other post).

e.g., I want

class A(..., bool _NestLevel = true) { }

then

A(...) a; to create an object. (note the _NestLevel is "hidden")

If A has only one template argument, _NestLevel, then I want this to reduce to

A a;

Thanks.

Reply via email to