Using IFTI to only allow params of a certain template instance?
Jarrett Billingsley
kb3ctd2 at yahoo.com
Fri Jul 6 15:32:15 PDT 2007
Say I have a function which has a parameter whose type has to be an instance
of a particular template, like so:
class Temp(T)
{
// blah
}
OK, so the first thing I tried was something like this:
void func(T, U : Temp!(T))(U param)
{
}
but when I call it like
auto t = new Temp!(int)();
func(t);
the compiler doesn't accept it, it says it can't deduce the types. It looks
right to me, though.
If I switch the order of the template parameters to func, I get different
errors (notably, an error saying that I can't have a specialization for a
deduced parameter).
Is there any way to restrict the parameter like this? I thought about using
a static assert with is(), but I can't think of how I'd check that the type
of the parameter is an instance of Temp.
More information about the Digitalmars-d-learn
mailing list