Вопрос от меня. Можно ли хоть как-нибудь передать среди параметров шаблона тип класса, в котором и идёт эта "передача"?
Понимаю, что сформулировал коряво, поэтому покажу код:
PHP Code:
template <typename T>
class Sub
{
};
//-------------------
class Temp
{
Sub<int> s1;
Sub<Temp> s2;
};
Этот код отлично скомпилируется и будет работать. Но, допустим, я решил переименовать класс
Temp в
MyFavoriteClass - а это означает, что и тип переменной s2 придётся переименовать...
В C++11 есть удобная штука
decltype(X), которая определяет тип
X ещё на этапе компиляции. Естественно, что я попробовал сначала написать
decltype(*this) - но, увы,
"invalid use of 'this' at top level". А вот если написать такую строку внутри какого-то метода
Temp, то всё будет работать, поскольку
this уже будет существовать...
Вот и как быть? Как мне сказать компилятору, что я хочу передать именно
текущий класс
Temp как параметр шаблона?