下面的示例代码有什么问题?它不能在GCC中编译。为什么?有人可以帮助我在C++模板中使用嵌套名称说明符吗?
template <class TA>
struct A
{
template <class TAB> struct B;
};
template <class TC>
struct C {};
template <class TD>
struct D
{
template <class TTD> class T {};
};
template<class TA>
template<class TBA>
struct A<TA>::B : C<typename D<TA>::T<TBA> >
{
int foo;
};
GCC 4.3.4输出:
error: template argument 1 is invalid
error: expected `{' before ‘>’ token
error: expected unqualified-id before ‘>’ token
解决您的问题的标题来描述问题,请。 – 2011-04-22 04:12:40
我猜''typename'在某个地方缺少。虽然太累了,但集中精力。我会把它留给别人。但我认为你应该改写你的问题的一些部分。想象一下,从现在开始的一年内,有人会发现问题和答案。你的沮丧将很快消失。留下的话。 – 0xC0000022L 2011-04-22 04:13:04
不错的问题...从来没有见过这种复杂的类型模板! – iammilind 2011-04-22 05:59:30