gpt4 book ai didi

c++ - 扩展/重组宏元组

转载 作者:行者123 更新时间:2023-11-28 06:25:57 31 4
gpt4 key购买 nike

我正在尝试使用 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++ - 扩展/重组宏元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28526930/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com