66
голосов
7ответов
29312 просмотров

Распространение typedef из базового класса в производный для шаблона

Я пытаюсь определить базовый класс, который содержит только typedef. template<typename T> class A { public: typedef std::vector<T> Vec_t; }; template<typename T> class B : public A<T> { private: Vec_t v; // fails - Vec_t is not recognized }; Почему в B я...

68
голосов
3ответов
46491 просмотров

Доступ производного класса шаблона к данным-членам базового класса

Этот вопрос является продолжением вопроса, заданного в этой беседы . Используя следующие определения классов: template <class T> class Foo { public: Foo (const foo_arg_t foo_arg) : _foo_arg(foo_arg) { /* do something for foo */ } T Foo_T; // either a ...

36
голосов
5ответов
7319 просмотров

Проблема GCC: использование члена базового класса, который зависит от аргумента шаблона

Следующий код компилируется не с gcc, а с Visual Studio: template <typename T> class A { public: T foo; }; template <typename T> class B: public A <T> { public: void bar() { cout << foo << endl; } }; Я получаю сообщение об ошибке: test.cpp: в функци...