Имя типа C ++ как переменная - PullRequest
3 голосов
/ 25 июля 2011

Предположим, у меня есть шаблон класса MyClass.Можно ли сохранить тип шаблона в качестве переменной класса?Если так, то как?Мне любопытно, можно ли сделать что-то подобное.

Template <typename T> class MyClass;
Template <typename T> class AnotherClass;

MyClass<int> myClassInstance;
AnotherClass<oneInstance.functionThatReturnsTheStoredTypeFromAnInstanceVariableOfMyClass()> anotherClassInstance;

Заранее спасибо.

1 Ответ

7 голосов
/ 25 июля 2011

Они могут быть статическими переменными, вы можете вкладывать typedefs.

template<typename T> class MyClass {
public:
    typedef T type;
};
AnotherClass<MyClass<double>::type> anotherClassInstance;

Однако получить доступ к переменной-члену, как вы опубликовали, невозможно в C ++.

...