gpt4 book ai didi

c++ - 引用C++宏中的类

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

我要写

struct Foo{
MY_MACRO
};

然后扩展成

struct Foo{
void bar(Foo&){}
};

如何定义 MY_MACRO?

我唯一能想到的是:

#define MY_MARCO(X) void bar(X&){}
struct Foo{
MY_MACRO(Foo)
};

这非常接近但不太理想,因为我不想重复类名。

不幸的是,以下内容无法编译:

struct Foo{
void bar(decltype(*this)&){}
};

最佳答案

这与this question密切相关.答案是你不能(还)写一些东西来使用你所在的类定义的类型。你将不得不编写一个包含类定义开头的宏(即 struct Foo) 和一些促进 typedef 的机制。

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

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