问题标签 [boost-tuples]

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 投票
3 回答
608 浏览

c++ - `boost::make_tuple` 会复制吗?

我的代码中有这样的东西

我的问题是boost::make_tuple复制 objA 和 objB 吗?

0 投票
1 回答
164 浏览

c++11 - 如何使用元组和可变参数模板创建复杂类型

首先,我不是一个非常熟练的 C++11 和模板程序员,我读了很多帖子,但我不知道如何写我的想法(如果可能的话),说,这是我的想法。

我的想法是创建一个复杂的编译器时类型,我试图遵循这个规则

  • 像结构一样定义,我的意思是逐个字段(没有语法限制),例如像这样的东西。
  • 每个字段类型将是以下类型之一:int、short、long、byte、bool 和 std::string。
  • 这是棘手的部分,我想要一个元组,其中每个位置都是对每个字段的引用,这样我可以逐个字段访问存储的数据或获取一个元组。我使用 std::tuples 或 boost::tuples 没有问题。

欢迎每一个建议、示例、建议和任何其他评论,我正在努力学习如何做到这一点。

提前致谢

此致

编辑:我可以给你我试图这样做的代码,也许不是最好的方法,所以我愿意接受建议。

这段代码不编译,错误是由类型“tuple_t”和“tuple_t data”的声明引起的

问候

0 投票
2 回答
793 浏览

c++ - 如何初始化非默认构造的不可复制对象的元组?

给定一些具有参数化构造函数的类,例如:

如何正确初始化此类类的元组?

不使用 A 或 B 的复制构造函数,如果可能,也不使用移动构造函数。如果可能,首选 C++03 解决方案。

0 投票
1 回答
129 浏览

c++ - no == 为 boost::tuples 定义

我有这个代码:

但是当我尝试编译它时,我收到了这个错误:

为什么会发生这种情况,因为noRef它是这个案例的别名boost::tuple并且tuple_comparison应该管理这个案例?

发现错误,不知道如何解决:

似乎错误是在std::tie操作中。所以重写为:

工作正常。问题是这种解决方案效率低下,因为key它可能是整个元组的昂贵副本,而使用tie的是引用元组(小得多)。那么,我怎样才能引用it->first元组呢?我应该使用相同的tie技巧吗?

0 投票
1 回答
474 浏览

python - 将元素附加到 boost::python::tuple

我正在尝试从boost::python::tuple对象中删除第二个元素。我要从中删除第二个元素的元组是传递给 Python 函数调用的参数列表。

要删除我这样做的元素:

我认为问题在于boost::python::tuple没有添加元素,但它创建了一个新的元组,其中第一个和第二个切片作为元素。

我该如何解决这个问题?

0 投票
1 回答
336 浏览

stdmap - 使用 boost::tuple 作为键的映射查找

我想了解如何在地图中查找 boost::tuple 形式的键,其中Compare=std::less. 例如,这是我正在处理的代码片段:

在向映射中插入值时,假设s1isabcs2is xyz。在查找期间,如何确定键匹配?

是否分别对和分别进行字符串比较s1s2完成?如果是这样,是否使用了比较运算符?abcxyzstd::string

谢谢!

0 投票
1 回答
544 浏览

c++ - 为什么 std::tuple 不能用兼容类型的 std::tuple 逐元素构造?

我无法从兼容类型中std::tuple逐元素初始化元素。std::tuple为什么它不能像 with 一样工作boost::tuple

Live on Coliru(GCC 或 Clang 和 libstdc++ 无法编译,但是Clang 和 libc++ 编译没有错误


std::tuple没有进行元素构造,它实例化Foo<int>::Foo<std::tuple<int>>而不是Foo<int>::Foo<int>. 我认为std::tuple::tuple超载没有。4 和 5正是为此目的:

笔记:

不参与重载决议,除非
std::is_constructible<Ti, const Ui&>::valuetruefor all i

std::is_constructible<Foo<int>, int>::valuetrue。从 GCC 模板错误中,我可以看到重载号。3:

而是选择。为什么?

0 投票
1 回答
479 浏览

c++ - 在 boost 元组向量中查找元素的位置

我正在迭代 boost::tuples 的向量以找到一个元素。但是,我还想找到该元素在向量中的确切位置,以便稍后将其删除。这是代码,但是 std::distance 没有给我正确的值。

例如对于大小等于 5 的向量,std::distance 是 8!

为什么?我的代码中的错误在哪里?

0 投票
2 回答
2382 浏览

c++ - 使用 std::get、std::tuple_size、std::tuple_element 对元组的组件求和

我有一个自定义类,它有一个类似元组的接口。因为我希望我的代码尽可能通用,所以我认为将我的算法基于函数std::get,是一个好主意std::tuple_sizestd::tuple_element因此您只需专门化这些函数即可使用我的算法。让我们将需要这些函数特化的概念称为Tuple

现在我试图总结 a 的组成部分Tuple。函数声明应该是这样的:

我想这涉及到很多模板编程,但我就是不知道该怎么做。

除此之外,我只会使用全局的重载+ operator

我正在使用 c++1z。

0 投票
1 回答
105 浏览

c++11 - 在不同类型的容器之间复制数据

我正在尝试将数据从一种容器类型复制到另一种容器类型,容器都是二维向量,我使用 boost::combine 和 boost::tie 来迭代容器,代码构建良好但抛出 bad_alloc 时跑。我无法理解为什么像下面这样的简单代码会抛出 bad_alloc,我做错了什么?当容器是多维的时,还有哪些其他策略可以在容器之间复制数据。