【发布时间】:2020-11-08 20:57:59
【问题描述】:
va_lists 可以处理 C++ 引用吗?我知道他们可以处理整数、双精度和指针,但不能处理浮点数、字符等。他们可以处理 C++ 引用吗?
【问题讨论】:
-
不是浮点数、字符等?你能提供一个参考吗?我不知道
va_list,你说的我很惊讶。我快速检查但没有找到类似的东西 -
我猜他们的意思是,当
float类型的表达式作为参数提供给可变参数函数时,它会转换为double,因此被调用的函数必须使用va_arg(ap, double)。va_arg(ap, float)通常不起作用。同样char被转换为int或unsigned int。 -
该视频是关于 C 中的可变参数函数的。您的问题是关于 C++ 的。此外,C++ 标头是
cstadarg而不是stdarg.h。不要仅仅因为 C++ 试图相似就将 C 和 C++ 混淆为相同 -
@Serket Youtube 视频绝不是任何编程的答案。请提供指向文档的链接,或标准的引用来说明这一点。
-
当你使用 C++ 时,你应该看看variadic templates/parameter packs。这可能是一个更好的选择。
标签: c++ function parameters variadic-functions variadic