【发布时间】:2011-06-27 09:18:37
【问题描述】:
我想创建一个依赖于外部类的内部模板类。 我无法定义其静态成员:
template<typename T1, typename T2>
struct B {
template<typename T3>
struct C {
static T3 m_c;
};
static T1 * pT1;
};
template<typename T1, typename T2>
template<typename T3>
T3 B<T1,T2>::C<T3>::m_c;
template<typename T1, typename T2>
T1 * B<T1,T2>::pT1 = &B<T1,T2>::C<T2>::m_c;
我得到: a.cc:35:错误:“>”标记之前的预期主表达式 a.cc:35:错误:'::m_c' 尚未声明
我如何定义它? 谢谢。
【问题讨论】:
-
对我来说看起来还不错。你用的是什么编译器?
-
代码使用VC9、VC10和Comeau Online编译干净。
-
抱歉,当我发布代码时,代码已经堆积如山了。现在有正确的代码了。
-
它对我来说仍然编译得很好。我刚刚在 5 种不同的编译器上对其进行了测试:borland、vc10、mingw-gcc-4.5.2、digital mars c++ 和 Clang。您正在使用什么编译器正在拒绝该代码?