我正在尝试使用#define 创建一个宏,它允许我按需创建新类。这是我的代码:
#pragma once
#include "PDDefFileReader.h"
#define SET_LANG( lang ) *( new std::string( lang ) )
#define LANG( cName, lName )
class cName
{
public:
cName()
{
_langName = SET_LANG( lName ); <- HERE !!!!
_reader = new PDDefFileReader( _langName );
}
~cName(){}
std::string Str(){ return _langName; }
private:
PDDefFileReader* _reader;
std::string _langName;
};
所以我想知道如果我想将定义的“lName”参数作为 std::string 对象,我应该怎么做。现在(在“这里!!!!”行)我收到错误:
Error: Identifier "lName" is undefined
知道我想做的事是否可行吗?
为了给你一些背景信息,我正在做一个自定义的多语言阅读器。因此,我可以通过执行以下操作来简单地定义新语言:
LANG( Cpp, "cpp" )
LANG( Perl, "pl" )
谢谢 !!