我想不出字标题一个更好的办法...在这种情况下,我该如何强制C++宏替换?
#define X(c) c
#define Y(c) X(c)
#undef X
int main(int argc,char*argv[])
{
std::cout << Y(5) << std::endl;
return 0;
}
这将导致一个错误,因为X()不在此范围内声明。有没有办法让Y存储一个X的副本(也就是强制宏定义发生,因为我定义了Y),这样它就不再依赖X存在了?也许boost有一些预处理器的东西,或者有一个简单的方法。想法?
像make中的':='赋值。 – 2010-02-24 23:04:54
你想用它来实现什么?如果您退后一步并解释您要解决的问题,我们可能会提出其他方法来解决问题。宏观替代不会奏效。 – jalf 2010-02-25 12:46:13