【问题标题】:decltype(auto) vs auto&& to conserve cv qualifierdecltype(auto) vs auto&& 以保存 cv 限定符
【发布时间】:2013-11-19 08:13:59
【问题描述】:

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

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

【问题讨论】:

  • 三种形式都有不同的用途——auto总是一个值,auto&&总是一个引用,decltype(auto)可以要么,取决于初始化器。
  • 请打开一个新问题,而不是附加到这个问题并更改标题。如果点击“编辑”,可以回滚到之前的版本。

标签: c++11 c++14


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 2011-10-15
    • 1970-01-01
    相关资源
    最近更新 更多