Вопрос от меня. Можно ли хоть как-нибудь передать среди параметров шаблона тип класса, в котором и идёт эта "передача"?
Понимаю, что сформулировал коряво, поэтому покажу код:
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 как параметр шаблона?
Welcome to the soldier side,
Where there is no one here but me.
People all grow up to die,
There is no one here but me...