【发布时间】:2021-09-19 07:08:40
【问题描述】:
我可以在三元运算符的这种用法中使用auto吗?
auto obj = some_cond ? static_cast<className*>(baseClassObj) : nullptr;
在 Visual Studio 中编译,代码运行正常,但会不会有什么意想不到的副作用?或者,这里的auto 会一直是className*,我可以放松一下,写出这样的代码吗?或者,使用三元运算符,这样写更好吗?
className* obj = some_cond ? static_cast<className*>(baseClassObj) : nullptr;
【问题讨论】:
-
每个 C++ 变量的类型都是在编译时确定的。你的
auto obj的类型是className*。
标签: c++ c++11 conditional-operator auto