我想创建一个依赖于外部类的内部模板类。 我在定义静态成员时遇到了麻烦:
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:错误:在'&gt;'之前预期的primary-expression代币 a.cc:35:错误:':: m_c'尚未声明
我该如何定义它? 感谢。
答案 0 :(得分:0)
我猜你的编译器在解析<
符号作为模板声明的开头括号时失败了。试着明确告诉它它是一个模板,而不是一个小于运算符:
template<typename T3>
T3 B<T1,T2>::template C<T3>::m_c;