(n);"?-6ren"> (n);"?-const int n = 0; auto& n1 = const_cast(n); auto n2 = const_cast(n); C++11标准是否保证n2 is int&通过 auto n2 -6ren">
gpt4 book ai didi

c++ - C++11 标准是否通过 "n2 is int&"保证 "auto n2 = const_cast(n);"?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:13:22 25 4
gpt4 key购买 nike

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 使用与常规函数模板参数推导相同的规则,后者从不推导引用。

C++14 decltype(auto) 另一方面,可以在这里推导出一个引用。以及 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&

关于c++ - C++11 标准是否通过 "n2 is int&"保证 "auto n2 = const_cast<int&>(n);"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40993110/

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