繁体   English   中英

课堂上的模板成员

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM