2016-06-15 141 views
-2
using namespace std; 

class cName 
{ 
public: 
    cName(); 
    void fName(){}; 
}; 

#define LNA_FUNCTION(className, funcName) \ 
static LNA_FUNCTION<className> funcName##className##Func(#className, #funcName, className :: funcName) 

LNA_FUNCTION(cName, fName); 

int _tmain(int argc, _TCHAR* argv[]) 
{ 

} 

任何人都可以请为什么在编译VS 2008时显示此错误?编译错误C2143:语法错误:缺少';'之前'<'

编译错误C2143:语法错误:缺少';' '<'

+0

请格式化您的代码。 – Xiobiq

+1

该宏扩展为'静态LNA_FUNCTION '...这是一个语法错误 –

回答

3

没有看到所有的代码,您可能没有定义一个名为LNA_FUNCTION的模板类。你有你所有的依赖吗?

作为一个旁注,我强烈建议不要写一个类,然后定义一个同名的预处理器宏。它可能不会做你想做的事情。

相关问题