标准库标头 <cstdarg>

来自cppreference.com
< cpp‎ | header
 
 
 

此头文件原作为 <stdarg.h> 存在于 C 标准库。

此头文件提供对 C 风格变参函数的支持,并且“默认实参提升”的 C 定义会替换成对应的 C++ 定义

类型

保有 va_start、va_arg、va_end 和 va_copy 所需的信息
(typedef)

启用对可变函数实参的访问
(宏函数)
访问下一个可变函数实参
(宏函数)
(C++11)
制造可变函数实参的副本
(宏函数)
结束对可变函数实参的遍历
(宏函数)

概要

namespace std {
  using va_list = /* 见描述 */ ;
}
#define va_arg(V, P) /* 见描述 */
#define va_copy(VDST, VSRC) /* 见描述 */
#define va_end(V) /* 见描述 */
#define va_start(V, P) /* 见描述 */

缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

缺陷报告 应用于 出版时的行为 正确行为
CWG 2645 C++98 C++ 定义了“默认实参提升”,但使用的仍然是它的 C 定义 C++ 定义会覆盖 C 定义