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