variadic-macros

variadic-macros

文章 0 浏览 6

MSVC 未正确扩展 __VA_ARGS__

考虑这段代码: #define F(x, ...) X = x and VA_ARGS = __VA_ARGS__ #define G(...) F(__VA_ARGS__) F(1, 2, 3) G(1, 2, 3) 两个宏的预期输出都是 X …

风柔一江水 2024-10-19 14:21:16 14 0

可变参数宏是非标准的吗?

对于调试构建,我通常使用 Clang,因为它可以更好地格式化警告和错误,并且可以更轻松地跟踪它们并修复它们。 但最近在添加带有可变参数的宏后,Clang…

锦欢 2024-10-14 00:42:06 16 0

如何挑选出发送到仅采用可变参数的宏的第一个参数

我尝试获取发送到可变参数宏的第一个实际参数。这是我尝试过的,但在 VS2010 中不起作用: #define FIRST_ARG(N, ...) N #define MY_MACRO(...) declt…

溺渁∝ 2024-10-12 22:11:59 15 0

C 中可变参数宏的问题

我在 C 中的 #define 语句中遇到可选参数的问题,或者更具体地说,在 gcc 4.2 中: bool func1(bool tmp) { return false; } void func2(bool tmp, bo…

冬天旳寂寞 2024-10-10 02:33:36 11 0

我可以在中间而不是末尾定义可变 C 预处理器宏吗?

如果我这样做,GCC 会抱怨: #define M(obj,met, ..., contents) obj##_##met(const void * self, __VA_ARGS__) { \ contents \ } 给我两个原因: err…

木落 2024-09-26 13:22:36 16 0

C 中的标记粘贴

阅读VA_NARG 我尝试使用宏根据 C 中的参数数量来实现函数重载。 现在的问题是: void hello1(char *s) { ... } void hello2(char *s, char *t) { ... …

留一抹残留的笑 2024-09-24 15:03:46 20 0

具有零参数和逗号的可变参数宏

考虑这个宏: #define MAKE_TEMPLATE(...) template 当与零参数一起使用时,它会产生错误的代码,因为编译器期望逗号后面有一个标识符。实际上,VC 的…

一笔一画续写前缘 2024-09-16 01:23:43 15 0

C预处理器、宏“重载”

我正在尝试做某种宏“重载”,以便宏(某物)的扩展方式与宏(某物,其他)不同。 使用我从此处获得的片段(我不确定是否它是 100% 可移植的)和 Boos…

要走就滚别墨迹 2024-09-13 06:57:19 12 0

向可变参数宏添加默认参数

是否可以在可变宏中的变量参数之前添加默认参数? 例如,我有宏的版本,就像 #define MACRO(arg1, ...) func(arg1, ##__VA_ARGS__) 我想在变量参数之…

离鸿 2024-08-22 23:06:50 17 0

C++预处理器 __VA_ARGS__ 参数数量

简单的问题,我在网上找不到答案。在可变参数宏中,如何查找参数的数量?如果 boost 预处理器有解决方案,我可以接受。 如果有影响,我会尝试将可变数…

↘紸啶 2024-08-18 12:56:35 11 0

有没有办法在 Visual C++ 中编写带有变量参数列表的宏?

据我所知,在 gcc 中你可以写这样的东西: #define DBGPRINT(fmt...) printf(fmt); Is there a way to do that in VC++?…

杀手六號 2024-07-05 07:55:39 18 0
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文