正在展开/重新组合宏元组
Expanding / Recombining macro tuple
我正在尝试用C++中的宏执行以下操作:
#define ESC(...) __VA_ARGS__
#define f1(a,b,c) {a:b:c}
#define f2(ab,c) ( ESC ab,c )
#define f3(ab,c) f1( ESC f2( ab, c ) )
f2((myA,myB),myC) // RESULT: (myA,myB,myC)
f3((myA,myB),myC) // DESIRED RESULT: {myA:myB:myC}
换句话说,我有一组由元组(ab)和展开的参数(c)包装的参数,我需要将这些参数传递到另一个获取参数(a,b,c)的宏函数中。
上面的宏f2从(ab,c)中给出了(a,b,c),但从那里我不能使用(a,b,c)元组来调用f1。很明显,我处理这个问题的方法不对。有人能给我指一个更好的方法吗?
我可以在这个解决方案中使用BOOST_PP,如果这能让事情变得更容易的话。
提前感谢!
#define fst(first, second) first
#define snd(first, second) second
#define f3(ab,c) f1( fst ab, snd ab, c )
相关文章:
- C++:TypeDef使用元组
- Pybind11:将元组列表从Python传递到C++
- 重载元组索引运算符-C++
- 在C++中,如何通过几种类型从元组中选择多个元素
- 将fold表达式与std::一起用于两个元组
- std::ranges::elements_view,用于自定义类似元组的数据
- 将元组的向量转换/构造为堆
- 专用于 std 元组的模板,而无需用户执行remove_cvref
- 将元组的向量构造成堆
- 元组由 Swig 生成的 Python 包装器返回,用于C++向量
- 将元组类型扩展为可变参数模板?
- 时间复杂度 当具有复合数据类型(如元组或对)时?
- 类内部和外部静态 constexpr 元组之间的差异
- 可变参数模板与使用元组在参数中添加不同的数据对
- 访问和打印元组中的数据,并使用 C++14 使用模板函数显示数据
- boost::包含提升单元的元组的哈希值
- 如何将多个可变参数模板元组类组合成一个类?
- 在循环中组合元组
- 正在展开/重新组合宏元组
- 获取级联元组类型;组合result_of和tuple_cat