作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我知道我想在腿上开枪;)但是,它可以让我使其余(大量)代码更小且更具可读性。
在另一个预处理器宏中创建预处理器宏有什么棘手的方法吗?
这是我正在寻找的示例。我的真实场景更复杂
// That's what I want to do and surely C++ doesn't like it.
#define MACROCREATER(B) #define MACRO##B B+B
void foo()
{
MACROCREATOR(5) // This should create new macro (#define MACRO5 5+5)
int a = MACRO5; // this will use new macro
}
最佳答案
C++ 标准说 (16.3.4.3):
The resulting completely macro-replaced preprocessing token sequence [... of the macro expansion...] is not processed as a preprocessing directive even if it resembles one...
所以不,没有“官方”的方式来实现你想要的宏。
关于c++ - 有没有办法在另一个#define 中执行#define?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3314032/
我是一名优秀的程序员,十分优秀!