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.宏只能在绝对必要时使用。它们会模糊代码并产生难以识别的错误。

您的用例是什么?也许使用宏的方式是错误的。