c++ - G++ 4.5.0 中的 std::forward_as_tuple

标签 c++ c++11 tuples gcc4 perfect-forwarding

我迫切需要函数 std::forward_as_tuple ,但仅限于使用 GCC 4.5.0(我知道这对自己来说是一个糟糕的情况,但它会为我解决很多问题,所以请将尖刻的言论保持在最低限度)。 <tuple> header 似乎不包含函数(它应该包含),所以我的问题是:

  1. 它是否隐藏在其他标题中? (这以前发生过,但很难确定。)
  2. 是否可以推出自己的实现方案?即: 在 GCC 4.5.0 中实现的 c++11 部分是否可以实现?如果有人真正知道如何做到这一点,将获得奖励。

最佳答案

实现很简单:

template <typename... Elements>
/*constexpr*/ tuple<Elements&&...>
forward_as_tuple(Elements&&... args) /* noexcept */
{
    return tuple<Elements&&...>(std::forward<Elements>(args)...);
}

不知道它出现在哪个 GCC 中。根据this document可变参数模板和右值引用自 gcc 4.3 起可用,因此它应该适用于您的 gcc 4.5(我希望)

关于c++ - G++ 4.5.0 中的 std::forward_as_tuple,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13925904/

相关文章:

c++ - 我什么时候应该使用模板化参数而不是构造参数?

c++ - 在没有 C++ 11 的情况下使用 char16_t、char32_t 等?

c++ - 获取谷歌测试异常抛出消息

c++ - 为什么在#include <string>之后仍需要使用std::string?

javascript - 脚本:在HTML文件中显示图像

c# - 库存控制系统的类结构

c++ - 这是冲突吗?关于 C++ 汽车

javascript - 元组类型的问题

java - 在 Java 中创建元组和元组函数的辅助方法?

arrays - Swift 3 对元组数组进行排序