C++ T不是一个类,但它是
为什么这不起作用?(看在上帝的份上!)C++ T不是一个类,但它是,c++,templates,C++,Templates,为什么这不起作用?(看在上帝的份上!) 模板 甲级 { typedef typename T::value_type value_type; 公众: A(); }; 我收到以下错误: 错误1错误C2825:“T”:后跟“:”时必须是类或命名空间 但是T是一个类,我刚刚指定了,不是吗?那有什么问题吗? 谢谢。T可能是基元类型,具体取决于您如何实例化模板…您在哪个模板专业化中遇到此错误?也许您正在代码中的某个地方执行类似于A的操作。请提供更多关于专业化的信息,如果你想要更好的信息,请给出错误。只是
模板
甲级
{
typedef typename T::value_type value_type;
公众:
A();
};
我收到以下错误:错误1错误C2825:“T”:后跟“:”时必须是类或命名空间 但是T是一个类,我刚刚指定了,不是吗?那有什么问题吗?
谢谢。
T
可能是基元类型,具体取决于您如何实例化模板…您在哪个模板专业化中遇到此错误?也许您正在代码中的某个地方执行类似于A
的操作。请提供更多关于专业化的信息,如果你想要更好的信息,请给出错误。只是FY: VisualC++只会在从模板实际创建一个具体类时遇到相关问题时抛出这样的错误。您应该能够很容易地从错误消息中确定这是在哪里发生的,并且查看该代码可能会为您解决此类问题带来很大的帮助。
当用于指定模板类型参数时,“class”关键字具有不同的含义。事实上,template
和template
是完全等价的,T可以是任何类型。编写模板
绝不会告诉编译器T应该只是一个类类型。向我们展示使用此模板的代码。谢谢,我在声明中没有看到这一点。再次感谢。
template<class T>
class A
{
typedef typename T::value_type value_type;
public:
A();
};