У меня есть приложение Visual Studio 2008 C ++, в котором базовый класс A_Base
должен создать экземпляр элемента данных, тип которого определяется родительским классом.Например:
template< typename T >
class A_Base
{
public:
typedef typename T::Foo Bar; // line 10
private:
Bar bar_;
};
class A : public A_Base< A >
{
public:
typedef int Foo;
};
int _tmain( int argc, _TCHAR* argv[] )
{
A a;
return 0;
}
К сожалению, похоже, что компилятор не знает, что такое T::Foo
, пока не станет слишком поздно, и я получаю такие ошибки:способ достижения этого типа функциональности?
Спасибо, PaulH