问题标签 [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.

0 投票
2 回答
1055 浏览

c++ - 如何在c ++ 11中将值输出到流元组

我正在尝试编写一个流运算符<<,它可以输出到一个std::tuple流而不是一个流。所以基本上,我正在尝试tee用 C++ 编写 Unix 命令,并执行以下操作:

我尝试使用 c++11 中的可变参数模板编程递归地编写流运算符。到目前为止,我所拥有的代码如下所示。但是代码无法编译,并且错误消息很长。

我的问题是,如何修复代码以使其正常工作?

g++ -std=c++11使用(gcc-4.8.1)编译的第一条错误消息是:

PS我搜索了SO,并且有一些关于编写复合流对象的帖子。代码涉及到很多stream和streambuf的内部结构。我在这里寻求的是一个简单/天真的解决方案,用十几行来完成类似的任务。

谢谢


我的代码:


更新: 以下是基于@KerrekSB 的示例代码对我有用的:

http://ideone.com/fBXuvP


@贾罗德42,

非常感谢。您的代码比我的原型更紧凑地执行递归/循环,并修复了我的代码中引用类型的使用。原始测试用例与您的演示一样工作。std::endl但是,如果我在流中使用(而不是“Foo”)或std::ofstream(而不是) ,我仍然无法编译您的版本std::cout,如下面的“not OK”行所示。知道如何解决这些问题吗?

0 投票
1 回答
276 浏览

c++ - 使用具有类的元组作为 C++ 类型

我已经为 Rettangolo 类定义了一个方法,如下所示

我的问题是使用 main.js 中的返回值。我需要去做

但基本上我不知道如何保存,所以使用返回的值,因为我的元组类型不是标准的

谢谢你的帮助

0 投票
1 回答
984 浏览

c++ - 指向返回可变参数类型引用的函数的指针元组

不要让问题标题吓跑你!我相信这只是一个语法问题。

我有这门课

并且很想知道扩展模板参数包的正确语法,以便我可以获得T &get()函数指针的元组。

0 投票
2 回答
65 浏览

arrays - 使用类中 std::tuple 的静态大小数组了解段错误

我有一个类,我想为图像中的每个像素存储三个数据点。我认为 std::tuple 将是这样做的好方法:

段错误直接发生在 main(int argc, char ** argv) 因为我在这个函数中声明了一个相机管理器对象。

这里发生了什么?

0 投票
1 回答
82 浏览

c++ - 创建数据元组并将解包作为函数参数发送

嗨,我想知道是否有人可以帮助我。我正在尝试实现 CallFunction (带有注释的位)。我不知道该怎么做。

[问题] 我想创建一个从 ...Arguments 创建的类型元组,但我想去掉限定符、const、& 等,这样我就可以用我的数据填充它并以某种方式传递给函数.

我现在不关心返回类型。有人指出我正确的方向或做过类似的事情吗?或者这完全是疯狂的,而不是可以做的事情。唔!无论如何 TY 来检查一下 :)

它与

0 投票
2 回答
13096 浏览

performance - 为什么 std::pair 比 std::tuple 快

这是用于测试的代码。

元组测试:

配对测试:

我通过 Linux time 命令进行了时间测量。结果是:

我想知道,为什么 O0 中这两个数据结构之间存在如此大的差异,因为它们应该非常相似。02的差别很小。

为什么O0的差异如此之大,为什么有任何差异?

编辑:

带有 v.resize() 的代码

一对:

元组:

结果:

编辑:

我的系统

0 投票
1 回答
519 浏览

c++ - 为什么 `std::forward_as_tuple(1)` 不是常量表达式?

在上面的代码中,static_assert 通过了,但是第 1 行到第 3 行无法使用 gcc 4.9(由 ubuntu 提供)和 clang 编译。他们抱怨变量不是由 初始化的constexprsx不是 a constexpr(即使它是由文字初始化的),而是创建对临时的引用或者它们的实现forward_as_tuple()不是(尽管 C++14 标准确实保证了这一点)。

我正在编写一些大量使用std::tupleand的代码constexpr。我可以绕过std::forward_as_tuple()不被定义为constexpr,但我不明白为什么forward_as_tuple(0)会返回 a tuple<int&&>,根据 clang 创建一个对临时的引用,使其不是 constexpr。替代品不能满足我的需要——std::make_tuple()不能用于完美转发,std::tie也不能存储文字值。编辑:为什么std::forward_as_tuple()以这种方式工作而不提供替代方案?

我在这里做一些根本错误的事情还是有什么我不明白的?

0 投票
2 回答
105 浏览

c++ - 从c ++中的函数重新调整多个向量?

我想从一个函数返回多个向量。我不确定任何一个元组是否可以工作。我试过但没有工作。

0 投票
1 回答
89 浏览

c++ - 使用自动 C++ 检索存储元组的值

如果我在一个类中存储一个元组:

您是否可以稍后通过执行此操作来检索这些值?

我知道这不起作用,但有一个我忽略的简单修复方法。据我所见,decltype 可以使用通过函数传递的成员(在我的情况下为 returnTuple),但由于我的元组已经存储,这并没有真正的帮助。是否有另一种方法可以使自动返回类型成为元组的类型?

0 投票
3 回答
330 浏览

c++ - 以自然(非反向)顺序将 func 应用于 std::tuple 中的元素

我需要为任意元组中的每个元素调用模板或重载函数。准确地说,我需要在元组中指定元素时调用此函数。

例如。我有一个元组std::tuple<int, float> t{1, 2.0f};和一个函数

我需要一些 struct/function Apply,如果像这样调用它Apply<Lambda, int, float>()(Lambda(), t)会产生:

而不是2.0f; 1;

请注意,如果将“原始”参数包传递给函数,我知道解决方案,并且我知道如何以相反的顺序对元组执行此操作。但是以下部分特化的尝试Apply失败了:

代码已编译,但仅打印第一个参数。但是,如果我将ForwardsApplicator专业化替换为

它可以正常工作 - 但是,当然,只适用于长度为 2 的元组。对于任意长度的元组,我该如何做——如果可能的话,优雅地?

编辑:谢谢你们的回答!这三者都非常直截了当,并从所有可能的有利位置解释了这个问题。