gpt4 book ai didi

c++ - 解压可变宏的任何技巧?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:53:36 28 4
gpt4 key购买 nike

解压可变宏的任何技巧?例如,

#define READ(...) 表示一个一个地读取参数

READ(a, b, c) 将被解包为 read(a);阅读(二);读(c)

最佳答案

您可以使用此处描述的“成对滑动参数”宏技术来实现它: https://codecraft.co/2014/11/25/variadic-macros-tricks

#define _EXPAND(args) args
#define READ1(a) read(a);
#define READ2(a,b) read(a); read(b);
#define READ3(a,b,c) read(a); read(b); read(c);
#define GETREAD(_1,_2,_3, READN,...) READN
#define READ(...) _EXPAND(GETREAD(__VA_ARGS__, READ3, READ2, READ1)(__VA_ARGS__))

_EXPAND(args) 仅在 MSVC 中需要。

关于c++ - 解压可变宏的任何技巧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23816740/

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