我試圖做類似如下:「重載」宏以`#define`恆
//Bad; can't redefine macros; uses later definition.
#define foo )
#define foo(arg) ,arg)
也就是說,我想foo
(注:不宏功能)映射到一件事情,我想宏功能foo(arg)
映射到其他東西。所以foo
需要一些#define
常數(捕獲兩種情況)映射到。 。 。一些東西。
我一直沒能想出一個辦法,(而且由於這是一個宏觀的和恆定的,許多previousquestions不適用)。 我該怎麼做?
邪惡的編譯器/平臺特定選項也很棒。雖然我使用的是C++ 14,但爲C宏標記c。
旁註(按要求):這可以用於例如,製作爲new
自己的調試重載將與安置工作的新和:
#define new new(__FILE__,__LINE__ foo
//...
void const* p1 = new int();
void const* p2 = new (ptr) int();
你能描述一個這樣的要求的原因嗎? –
你能再描述一下這個需求嗎?我似乎明白你在問什麼,但並不完全明白你說的「)」和「,arg)」是你問題的一部分。 – tofro
@EugeneSh。如果沒有老鼠洞,這很難,但我添加了一個簡短的例子。 – imallett