gpt4 book ai didi

c++ - 在 C++ 中使用宏有问题

转载 作者:行者123 更新时间:2023-11-27 23:57:41 26 4
gpt4 key购买 nike

我正在尝试编写一个 C++ 宏来使用模板和颜色名称定义一堆子类,如下所示:

#define DECLARE_SET_ELEMENT(color) class ##color##SetElement : public SetElement { public: ##color##SetElement(std::string name); int getValue() override; };

这样我就可以像这样使用它:

DECLARE_SET_ELEMENT(Blue) // -> class BlueSetElement ...
DECLARE_SET_ELEMENT(Red) // -> class RedSetElement ...
...

但是宏定义似乎没有正常工作。它应该如何才能按照我的预期工作?

最佳答案

使用

#define DECLARE_SET_ELEMENT(color) class color##SetElement : public SetElement { public: color##SetElement(std::string name); int getValue() override; };

相反。前导 ## 不适合这种情况。您不想将 class 关键字与 color 结合使用。

关于c++ - 在 C++ 中使用宏有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41411909/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com