Вопрос от меня. Можно ли хоть как-нибудь передать среди параметров шаблона тип класса, в котором и идёт эта "передача"?
Понимаю, что сформулировал коряво, поэтому покажу код:
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 как параметр шаблона?