gpt4 book ai didi

c++ - 将 NON-POD 类型传递给 Variadic 函数是未定义的行为?

转载 作者:可可西里 更新时间:2023-11-01 15:20:27 25 4
gpt4 key购买 nike

In this document ,作者说

Only a POD-type can be an argument for the ellipsis "..." while std::string is not a POD-type.

我将此理解为 将 NON-POD 类型传递给 Variadic 函数是未定义的行为。对吗?
不过,他是在说 C/C++ 标准吗?我试图在 n3242 C++ 规范中找到它。但是找不到。

我想知道我的理解是否正确,这是一个标准。

最佳答案

它在 C++11 5.2.2/7 中指定:

Passing a potentially-evaluated argument of class type having a non-trivial copy constructor, a non-trivial move contructor, or a non-trivial destructor, with no corresponding parameter, is conditionally-supported with implementation-defined semantics.

所以要看各个编译器支持不支持了;可移植代码不能依赖任何实现定义的行为。在旧标准中,它只是未定义。

关于c++ - 将 NON-POD 类型传递给 Variadic 函数是未定义的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10083844/

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