问题标签 [stdtuple]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 我可以从 std::tuple 获得“cons list”行为吗?
我想递归地定义一个设置 std::tuple 的所有元素的函数。如果它是一个 boost::tuple,我会简单地看这里并复制这个例子:
到目前为止,对于 std::tuple,我找不到任何几乎那么简单的东西。附近有什么吗?
更新:好的,我需要进一步充实这个问题。
我正在编写包装元组的类 foo ,以便做很多事情,其中只有一个是设置所有元素。我希望保留这种对 foo 的递归定义,但要从 boost::tuples 切换到 std::tuples。
c++ - 在大型项目中使用 c++11 std::tuple
C++11 添加了非常有用的容器 std::tuple,现在我可以将许多结构转换为 std::tuple :
至
但是,这只是在大型项目中使用 std::tuple 的一个缺点——可能很容易忘记每种元组的含义,因为这里不是按名称访问,只能按索引访问。
出于这个原因,我会使用旧的 Field 类。
我的问题是,我可以简单而美丽地解决这个缺点吗?
c++ - 如何提取/扩展可变参数模板参数
t1
将成为std::tuple<QList<int>, QList<double>>
t2
将成为std::tuple<QVector<int>, QVector<double>>
我不知道这是否可能。目前我为此使用预处理器魔法。但我希望可变参数模板也可以做到这一点。那么,我可以做任何递归的事情或任何类似的事情来提取模板吗?
c++ - 初始化元组数组,其中元组元素需要前一个元素作为 ctor arg
这显然不起作用,因为我无法在 get<>() 中放入任何内容,因为元组尚未构建。然而,我需要在给定数组元素的同一元组中通过类型转换从 X 初始化 Y 元素。我怎样才能做到这一点?在我的情况下,Y 只能通过 X 的这种类型转换或移动来构造;没有默认的ctor。此外,我需要一个基于堆栈的数组,所以如果不为 vector 编写堆栈分配器,我就不能使用 vector 代替,这对于应该做的事情来说是一个巨大的代码添加。
c++ - 在异构元组上映射 C++ 重载函数?
在 C++ 中,是否可以在异构元组上映射重载函数?例如:
我可以编写一个映射函数,将相同的重载实例映射f
到每个元组元素(下面的代码),但我不知道如何将重载解析f
从调用推迟map
到调用f
inside map
。有没有人想出如何做到这一点?
这是我将重载函数的单个实例映射到元组上的代码(其中 seq 和 gens 取自此答案https://stackoverflow.com/a/7858971/431282):
c++ - 创建 C++ std::tuple 投影函数
我正在寻找std::tuple
. 即,该函数接收一个整数列表作为模板参数,并返回一个仅在这些索引处具有值的元组。
例如,假设我有一个 tuple tuple<int,String,char,float> t
,那么调用 toproject<1,3>(t)
会产生一个 type 的元组tuple<String,float>
。
当然,关键似乎是递归模板。但是,我无法让它工作。我尝试通过声明一个结构来计算投影操作的返回类型。即使这样也失败了。这是我尝试过的:
这编译。具有空元组的基本情况也适用,即:
结果t
是一个空元组。但是,递归案例无法编译:
我收到以下错误:
所以似乎递归情况不被识别,但为什么呢?
c++ - 可变参数容器的 getter - get<0>() 仅适用于具体类型?
我需要一种特殊的可变参数容器并且遇到了一些无法预料的问题,因此我创建了以下最小示例(请参阅注释):
这里发生了什么?为什么 g++ (4.7.2) 抱怨 foo 中的声明?为什么 container::get #3 不能编译?
我猜像 get<0> 这样的东西只能在具体类型上调用?
这个行为标准符合吗?
c++ - 在可变参数模板函数中制作成员函数指针的元组
如何获得成员函数指针的元组?我似乎找不到正确的语法。我认为这会起作用:
但它不能编译(GCC 4.8.2):
错误:函数 'constexpr std::tuple::__type ...> std::make_tuple(_Elements&& ...) [with _Elements = {}] 的参数太多返回 std::make_tuple(&std::vector::推回...); ^
我通过引入这样的辅助函数找到了一种解决方法:
我可以以某种方式在单个函数中执行此操作吗?
c++ - 将元组参数转发到 VS2012 中的函数
我正在尝试将元组参数转发到 VS2012(更新 3)中的函数。
我的理解是,这在 C++11 中使用可变参数模板是可能的,不幸的是,VS2012 仅支持“假”可变参数。
我希望 VS2012 中有一种方法可以实现上面显示的功能,但我不确定,如果没有真正的可变参数,这可能吗?
c++ - std::array 编译时间扣除
我有一段代码,我试图根据等待的数据类型自动解码缓冲区。数据表示为元组:
我也有元组 hepler 来迭代元组并为每个元组执行一个仿函数:
这是我的解码器函子:
这就是调用代码的地方:
所以一切都适用于整数类型,并且它们被完美地解码。但是,当我想尝试实现一种新的解码方法(用于数组)时,它没有编译:
这是错误(gcc-4.9)。
所以我不明白为什么我会收到这个错误。由于测试std::is_integral<X>::value
,数据不应该被评估DecodeIntegral( x, buffer, index );
吗?
请不要这是正在进行的工作,因此肯定会有一些错误和改进。并感谢您的帮助!