gpt4 book ai didi

C++ 强制转换为 void

转载 作者:行者123 更新时间:2023-11-30 01:51:29 25 4
gpt4 key购买 nike

据我所知,C++ 标准规定只有在函数样式转换的情况下转换为 void 才是正确的(ISO/IEC 14882:2003, 5.2.3)。

但我找不到任何关于 C 风格C++ 标准中转换为 void 的信息。

在这种情况下,程序的行为是否仅由实现定义?

最佳答案

As I understand, C++ standard says that casting to void is correct only in case of function-style casting

不,它可以通过 static_cast 来完成,因此也可以通过使用函数式或强制转换符号的转换来完成。

But I can't find anything about C-style casting to void in C++ standard.

它由 [expr.static.cast] 为 static_cast 定义,5.2.9/6:

Any expression can be explicitly converted to type cv void, in which case it becomes a discarded-value expression.

[expr.cast],5.4,描述了 C 风格的转换如何使用 static_cast,因此它也适用于该风格。 [expr.type.conv], 5.2.3, 描述了函数式风格如何等同于 C 风格,因此它也适用于该风格。

(注意:部分编号指的是 C++11 (ISO/IEC 14882:2011),而不是您所指的 C++03,因为那是当前版本。其他版本可能不同,但可能不会很多。)

关于C++ 强制转换为 void,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26115775/

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