Возможно ли иметь шаблонный класс, а также шаблонизатор с другим типом?
как то так:
template<typename T1>
class Foo{
template<typename T2>
Foo(T1 aBar, T2 dummyArgument){
bar = aBar;
bytesOfT2 = sizeof(T2);
};
int bytesOfT2;
T1 bar;
};
это возможно? и если да, то как бы я назвал такой конструктор? Нужно ли учитывать что-то в отношении файлов заголовка и cpp?
спасибо!
// edit: мой конкретный пример на самом деле даже немного сложнее. у меня есть
template <typename U1, U2>
class Foo{
U1 var1;
U2 var2;
};
template <typename T1>
class Bar{
template<typename T2, typename T3>
Bar(Foo<T2,T3> aFoo, T1 aVal){
val=aVal;
bytesOfT2=sizeof(T2);
bytesOfT3=sizeOf(T3);
};
int bytesOfT2;
int bytesOfT3;
T1 val;
};
означает ли это, что я могу здесь вызывать конструктор просто с любой переменной типа Foo, и он должен автоматически выбирать правильный конструктор в соответствии с конкретной версией Foo (например, если передаваемая мной переменная имеет тип Foo, если она автоматически устанавливается Т2, чтобы кипеть и Т3, чтобы плавать)?