C++ 复制宏中的下一行
我想做一个像宏一样的“装饰器”。它看起来是这样的:C++ 复制宏中的下一行,c++,c++11,macros,C++,C++11,Macros,我想做一个像宏一样的“装饰器”。它看起来是这样的: #define CLASS(name) \ class name\ {\ void DoClassStuff()\ {\ int result = //COPY CODE FROM THE NEXT LINES AND CALL IT;\ }\ }; CLASS(MyClass) int GonnaBeCopied() { return 10; } 结果应该如下所示: class MyClass
#define CLASS(name) \
class name\
{\
void DoClassStuff()\
{\
int result = //COPY CODE FROM THE NEXT LINES AND CALL IT;\
}\
};
CLASS(MyClass)
int GonnaBeCopied() {
return 10;
}
结果应该如下所示:
class MyClass
{
void DoClassStuff()
{
int result = GonnaBeCopied();
}
};
你不能那样做。宏以名称CLASS标识宏,然后括号内的内容作为宏的参数。之后的所有内容都会被宏处理器忽略,并由编译器正常处理 在宏中包含该代码的唯一方法是使其成为宏中参数的一部分
p.S.宏只能在绝对必要时使用。它们会模糊代码并产生难以识别的错误。您的用例是什么?也许使用宏的方式是错误的。