[英]Template members in class
我试图在非模板类中包括模板成员。 例子如下:
。H
class ncScript {
public:
template<typename T> void RegisterConstant( T value, const char *N );
};
.cpp
template<>
void RegisterConstant<int>( int value, const char * N ) {
// Do something.
}
template<>
void RegisterConstant<bool>( bool value, const char * N ) {
// Do something.
}
// and so on
但是当我试图像这样使用它时:
_luaCache["myluafile"].RegisterConstant( 13, "myvariable" );
我在Xcode(LLVM编译器)中收到以下错误:
Explicit specialization of 'RegisterConstant<int>' after instantiation.
该错误告诉您在编译器看到特殊化之前实例化了该类。
例如,如果看到此消息,则该类已被实例化或将在此处。
_luaCache["myluafile"].RegisterConstant( 13, "myvariable" );
如果以后实施专业化,则会出现错误。
最简单的解决方案是将特殊化声明放在标头中。
template<>
void RegisterConstant<int>( int value, const char * N );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.