gpt4 book ai didi

c++ - 一个宏定义调用中的对象及其类定义

转载 作者:太空狗 更新时间:2023-10-29 21:25:00 25 4
gpt4 key购买 nike

我想写一个宏,在下面的用法中定义一个全局对象foobar,它是在它下面定义的一个类。

SOMEMACRO(foobar)
{
public:
int a;
};

换句话说,我希望上面的内容与以下内容具有相同的效果:

class SomeClassPossiblyWith_foobar_InItsName
{
public:
int a;
};
SomeClassPossiblyWith_foobar_InItsName foobar;

准确地为对象指定“foobar”名称非常重要(或者至少以这种方式调用对正确对象的引用)。只要允许多次使用宏,类的名称并不重要。

这很难,因为类通常应该在使用之前定义,但也许存在一些棘手的(可能涉及模板的)方法来实现它?

最佳答案

非常简单,使用预处理器连接运算符##

类似于:

#define SOMEMACRO(name) \
SomeClassPossiblyWith_##name##_InItsName name; \
class SomeClassPossiblyWith_##name##_InItsName

关于c++ - 一个宏定义调用中的对象及其类定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14676525/

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