gpt4 book ai didi

c++ - 为测试创建多个相似标识符的宏

转载 作者:太空宇宙 更新时间:2023-11-04 11:25:07 24 4
gpt4 key购买 nike

我想写一个简单的宏来扩展一些标识符,这样当我有类似的代码来测试许多不同的类时,它可以省去我一遍又一遍地输入所有内容的工作。

我想要这样的东西:

#define TST(x)  x## x##_1(2);                   \
x## x##_2; \
\
x##_1.print(cout); \
x##_2.print(cout); \
x##_2.elem(3); \
x##_2.elem(4); \
x##_2.print(cout)

待翻译成

Pentagonal Pentagonal_1(2);
Pentagonal Pentagonal_2;

Pentagonal_1.print(cout);
Pentagonal_2.print(cout);
Pentagonal_2.elem(3);
Pentagonal_2.elem(4);
Pentagonal_2.print(cout);

每当我打电话

TST(Pentagonal);

到目前为止,它被翻译成粘在一起的样子

PentagonalPentagonal_1

我尝试搜索这个,但在这个特定案例中,我在其他地方找不到太多帮助。

最佳答案

改变:

#define TST(x)  x## x##_1(2);                   \
x## x##_2; \

...

#define TST(x)  x x##_1(2);                   \
x x##_2; \

...

## 是 token 粘贴运算符:它“吸收”周围的空白并将相邻的 token 合并为一个。

上面的额外内容是将 PentagonalPentagonal_1 粘贴在一起。

关于c++ - 为测试创建多个相似标识符的宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26921582/

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