簡體   English   中英

宏可創建多個相似的標識符進行測試

[英]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;                      \

...

##是令牌粘貼運算符:它“吸收”周圍的空白並將相鄰令牌合並為一個。

您在那兒獲得的附加功能將PentagonalPentagonal_1粘貼在一起。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM