为什么make_tuple会删除args类型的引用?

时间:2017-04-03 06:23:41

标签: c++ reference

请参阅std库中的make_tuple的实现

      // NB: DR 705.
  template<typename... _Elements>
    constexpr tuple<typename __decay_and_strip<_Elements>::__type...>
    make_tuple(_Elements&&... __args)
    {
      typedef tuple<typename __decay_and_strip<_Elements>::__type...>
    __result_type;
      return __result_type(std::forward<_Elements>(__args)...);
    }

返回类型是否已衰减(参考已删除)?那为什么呢?这个设计的关注点是什么?

我知道我们有一些替代方法可以达到我的要求,例如:升压:: REF。

我的问题是为什么make_tuple必须删除输入类型的引用?

更新: 任何人都可以帮我讨论我的问题吗?

0 个答案:

没有答案