const int n = 0;
auto& n1 = const_cast<int&>(n);
auto n2 = const_cast<int&>(n);
请问C ++ 11标准保证n2 is int&
的auto n2 = const_cast<int&>(n);
?
我必须使用auto& n1 = const_cast<int&>(n);
代替auto n2 = const_cast<int&>(n);
吗?
按照C ++ 11标准,这两种方式是否完全彼此等同?
auto
使用与常规函数模板参数推导相同的规则,该规则从未推导引用。
decltype(auto)
另一方面,C ++ 14可以在此推论参考。以及C ++ 11 auto&&
。
const int n = 0;
auto a = const_cast<int&>(n); // a is int
decltype(auto) b = const_cast<int&>(n); // b is int&
auto&& c = const_cast<int&>(n); // c is int&
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句