8
我在命名空間中使用宏時遇到了問題。 代碼是C++宏和命名空間
#include <iostream>
namespace a
{
#define MESSAGE_A(message) \
std::cout << (message) << std::endl;
}
#define MESSAGE_A(message) \
std::cout << (message) << std::endl;
int main()
{
//works fine
MESSAGE_A("Test");
//invalid
a::MESSAGE_A("Test")
return 0;
}
是什麼在宏使用命名空間的對象適當的變型。
可以幫助解決方法。在我的項目中,我必須在命名空間中使用宏,並且必須從另一個命名空間中調用宏。 – shadeglare 2013-02-21 12:49:47
@MaxFX,宏不是「調用」,它們被替換。如果你需要使用宏來處理過於複雜的事情,那麼你做錯了什麼。 – StoryTeller 2013-02-21 12:50:43