[英]Macro to create multiple similar identifiers for testing
我想編寫一個簡單的宏來擴展一些標識符,這樣當我有相似的代碼來測試許多不同的類時,它省去了一次又一次鍵入所有內容的工作。
我想要這樣的東西:
#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; \
...
##
是令牌粘貼運算符:它“吸收”周圍的空白並將相鄰令牌合並為一個。
您在那兒獲得的附加功能將Pentagonal
和Pentagonal_1
粘貼在一起。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.