Bru*_*ice 3 c++ conditional-operator auto c++11
我可以使用auto三元运算符的这种用法吗?
auto obj = some_cond ? static_cast<className*>(baseClassObj) : nullptr;
Run Code Online (Sandbox Code Playgroud)
它在 Visual Studio 中编译,代码运行正常,但会不会有任何意想不到的副作用?或者,会auto一直在这里className*,我可以放松并编写这样的代码吗?或者,使用三元运算符,这样写更好吗?
className* obj = some_cond ? static_cast<className*>(baseClassObj) : nullptr;
Run Code Online (Sandbox Code Playgroud)
auto推导出分配给它的值的类型。三元运算符只能返回一种类型。 nullptr可隐式转换为任何指针类型,但没有指针类型可隐式转换为std::nullptr_t,因此在此示例中,三元运算符必须始终返回className*,因此auto将始终推导出为className*。
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |