是否可以使用模板参数的成员? [重复]

以下是一个简单的示例。

template <typename TA>
class A {

};

template <class A>
class B {
    A a;
    A::TA ta;
};

int main(){
    B<A<int> > b;
}

在这里,我有一个具有未知类型(TA)的模板类A作为模板参数。在类B中,我想使用类A及其成员类型定义一些变量。

我在编译过程中收到一条错误消息,如下所示。

error: need typename before ˜C1::T1˜ because ˜C1˜ is a dependent scope

我知道我可以做这样的事情,

template <class A, typename TA>
class B{
    A a;
    TA ta;
};

但这似乎是丑陋的格式。

第一种情况可能吗?谢谢。