c++11 - decltype(auto) 与 auto&& 保存 cv 限定符

标签 c++11 c++14

使用 c++14 功能 decltype(auto) 与 auto&& 相比,保留 cv 限定符是否有优势?

auto v = const_return_func() //strip the constness
auto&& v = const_return_func()
decltype(auto) = const_return_func()

最佳答案

假设函数返回一个 const & 引用,因为 const 对象和 const && 是相当无用的返回类型, decltype( auto) 将执行与 auto && 相同的操作。

您通常不应将 decltype(auto) 用于局部变量,因为它没有特定的用例,并且会掩盖所声明的实体是对象还是引用。

关于c++11 - decltype(auto) 与 auto&& 保存 cv 限定符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20066352/

相关文章:

c++11 - C++ - 可变参数模板部分特化

c++ - 为什么在这段代码片段中复制构造函数被调用了两次?

c++ - 构造函数上的 SFINAE 在 VC2017 中有效,但在 clang/gcc 中无效

只能在一种方法中更改的 C++ 全局变量,可能吗?

C++ 标准没有说明枚举类的 operator!=() 和 operator==()

c++ - 我可以使用模板别名作为模板模板参数吗?

c++ - 在 vector 上使用迭代器时,'std::bad_alloc' 甚至是错误的 vector 大小

c++ - 枚举器中的按位运算

c++ - 如何构造不可移动不可复制对象的元组?

c++ - 为动态矩阵类实现自定义迭代器