gpt4 book ai didi

c++ - 宏可变参数和空宏可变参数

转载 作者:搜寻专家 更新时间:2023-10-31 02:04:19 26 4
gpt4 key购买 nike

我知道这是无效的

#define MACRO(x, ...) __VA_ARGS__
MACRO(5); // VA ARGS is empty, so is not good

但是,这有效吗?

#define MACRO(x, ...)
MACRO(5);

在 Wandbox 上,clang 会给我一个警告,gcc 不会,而在我的计算机上 MSVC 也不会。

最佳答案

在 godbolt.org 上使用 GCC(从 5.1 版到最新的 8.2 版)进行测试时,这会导致 -pedantic-errors 选项出错。

<source>:5:8: error: ISO C++11 requires at least one argument for the "..." in a variadic macro
MACRO(5)

查看here .

您将不得不等待 __VA_OPT__(可从 C++2a 获得)执行您正在尝试执行的操作。

关于c++ - 宏可变参数和空宏可变参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53666261/

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