gpt4 book ai didi

c++ - 具有三元运算符和 nullptr 的 auto

转载 作者:行者123 更新时间:2023-12-04 16:37:22 25 4
gpt4 key购买 nike

我可以将 auto 与三元运算符一起使用吗?

auto obj = some_cond ? static_cast<className*>(baseClassObj) : nullptr;

它在 Visual Studio 中编译,代码运行正常,但会不会有任何意想不到的副作用?或者,这里的 auto 会一直是 className* 并且我可以放心地编写这样的代码吗?或者,用三元运算符,这样写比较好?

className* obj = some_cond ? static_cast<className*>(baseClassObj) : nullptr;

最佳答案

auto 推导出分配给它的值的类型。三元运算符只能返回一种类型。 nullptr 可隐式转换为任何指针类型,但没有指针类型可隐式转换为 std::nullptr_t,因此在此示例中,三元运算符必须始终返回 className *,因此 auto 将始终推断为 className*

关于c++ - 具有三元运算符和 nullptr 的 auto,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68308022/

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