目前,我有一種情況就像這樣:使用typeof將變量聲明轉換爲類型?
#define my_macro(var) __builtin_types_compatible_p(typeof(var), foo) ? do_something : do_something_else
然而,不經意間宏被傳遞此參數:
my_macro(int x);
這當然失敗了,因爲typeof(int x)
無效。
有沒有可以在my_macro
內部應用的轉換,這將允許typeof
在該表達式上工作?我不能改變傳入宏的內容,只能在宏內發生。
所以,這樣的事情:
#define my_macro(var) typeof(?? var ??)
或者,有沒有我應該在這裏使用的另一種表現?
我會說「不「,雖然顯然負面的是有點難以證明;) –
@OliCharlesworth我擔心......我知道我可以用'decltype'來做,但我真的很想在這裏避免使用C++。 –