template <class T>
class A
{
public:
T value_;
typedef boost::shared_ptr<A> APtr_t;
class AA
{
public:
APtr_t ptr_;
}
typedef boost::shared_ptr<AA> AAPtr_t;
};
template <class T>
class B
{
public:
A<T> a_;
typedef A<T> A_t;
class BB
{
public:
A_t::AAPtr_t aaptr_;
}
}
int main()
{
B<int> a;
return 0;
}
При попытке скомпилировать вылезает ошибка:
ошибка: тип ‘A<T>’ не является производным от ‘B<T>::BB’
Ругается на эту строчку A_t::AAPtr_t aaptr_;
Никак не могу понять, в чём проблема, и как это исправить.
Спасибо за помощь!