小编Jac*_*osh的帖子

在这种情况下,如何在我选择的时候强制进行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;
}
Run Code Online (Sandbox Code Playgroud)

这会导致错误,因为X()未在此范围内声明.是否有任何方法可以使Y存储X的副本(也就是说,在我定义Y时强制宏替换发生),使得它不再依赖于X存在?也许boost有一些预处理器的东西,或者可能有一个简单的方法.想法?

c++ macros substitution

2
推荐指数
1
解决办法
455
查看次数

标签 统计

c++ ×1

macros ×1

substitution ×1