我正在尝试创建一个类,在该类中,构造函数采用与模板化类中定义的typedefinition相对应的类型的参数。 请参阅以下未编译的说明性片段。
class A
{
typedef enum test_t {
a1,
a2,
a3
} test_t;
};
template <class T>
class B
{
B(T::test_t obj);
};
template <class T>
B<T>::B(T::test_t obj)
{
}
// Explicit definition to let compiler know a template instantiation
template class B<A>;
编译此代码时,出现以下错误:
TemplatedClassTest.cpp:13:14:错误:在“ obj”之前出现预期的“)”
TemplatedClassTest.cpp:17:8:错误:“(”令牌之前的预期构造函数,析构函数或类型转换