gpt4 book ai didi

c++ - 什么在调用 void();正在做?

转载 作者:行者123 更新时间:2023-12-01 09:09:05 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Is a statement void(); legal and what is it actually?

(2 个回答)


2年前关闭。




我遇到了void();在三元运算符的“else”分支中用作“无所事事”,作为空指针检查的简写

if(var){
var->member();
}


作为

var ? var->member() : void();



但我似乎找不到对 void 的任何引用以这种方式使用的关键字,这是对 void 的函数或仿函数调用吗?关键字本身?或者它是什么都不转换为 void 的类型吗? ?或者这只是 pass 之类的 c++ 语法吗? ?

编辑: member() 的返回类型是 void在这个情况下。

最佳答案

您只是在“构造”类型为 void 的纯右值(不是变量,原因在评论中建议) , 就像 int()将默认构造一个 int .
正如其他人在评论中所说,第二种选择是贬义的。三元运算符是三元运算符,因为它有 if , then ,以及 else部分。如果您不需要 else ,你为什么要写一个并让它空着呢?
这个替代方案比这更丑陋和神秘:

if(var){
var->member();
} else {}
这可能看起来很愚蠢。

关于c++ - 什么在调用 void();正在做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61163681/

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