gpt4 book ai didi

c++ - 有没有办法在另一个#define 中执行#define?

转载 作者:IT老高 更新时间:2023-10-28 14:00:21 32 4
gpt4 key购买 nike

我知道我想在腿上开枪;)但是,它可以让我使其余(大量)代码更小且更具可读性。

在另一个预处理器宏中创建预处理器宏有什么棘手的方法吗?

这是我正在寻找的示例。我的真实场景更复杂

// That's what I want to do and surely C++ doesn't like it.
#define MACROCREATER(B) #define MACRO##B B+B

void foo()
{
MACROCREATOR(5) // This should create new macro (#define MACRO5 5+5)

int a = MACRO5; // this will use new macro
}

最佳答案

C++ 标准说 (16.3.4.3):

The resulting completely macro-replaced preprocessing token sequence [... of the macro expansion...] is not processed as a preprocessing directive even if it resembles one...

所以不,没有“官方”的方式来实现你想要的宏。

关于c++ - 有没有办法在另一个#define 中执行#define?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3314032/

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