gpt4 book ai didi

c++ - 预处理器计数器宏

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:27:32 25 4
gpt4 key购买 nike

有没有办法创建一个 COUNTER() 宏(遵循 C++11/14 标准)扩展为一个数字,每次 COUNTER( ) 被调用了吗?

我已经考虑过了,但找不到让它发挥作用的方法。我没有找到在 COUNTER() 宏中存储“状态”的方法。

示例:

#define COUNTER() <...> // Implementation goes here...
#define UNIQUE_NAME_1() TEST ## COUNTER()
#define UNIQUE_NAME_2() TEST ## COUNTER()

// Note how the COUNTER() macro can be used with other macros
// (it cannot be implemented with C++ code)

int main() {
std::cout << STRINGIFY(UNIQUE_NAME_1()) << std::endl;
std::cout << STRINGIFY(UNIQUE_NAME_2()) << std::endl;
}

预期输出:

TEST0 
TEST1

最佳答案

GCC 和(我相信)VC++ 都提供了 __COUNTER__ 宏,它可以满足您的期望。我不知道它是否完全遵循标准,但它可能足够接近实际使用。

关于c++ - 预处理器计数器宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22332103/

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