问题标签 [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 回答
2400 浏览

c++ - 定义可变大小的元组

我想在我的类中定义一个 boost fusion::vector,其大小由模板参数定义。ATM 我正在​​使用专门的辅助类来执行此操作,但我认为应该有一种方法可以通过 boost mpl/fusion 或仅一行中的其他东西来做到这一点。

有任何想法吗?

0 投票
2 回答
363 浏览

c++ - Boost Spirit Auto Parser 因双打元组而失败

在下面的代码中,我尝试将Boost Spirit Auto Parser用于一个序列或两个双打,但它无法编译。我在这里做错了什么?

被注释掉的行编译,所以它接受boost::tuple<double, double>作为 ; 的属性类型qi::double_ >> qi::double_。但它无法从属性类型中获取解析器。为什么?

0 投票
1 回答
1176 浏览

c++ - 使用 boost::mpl::vector 创建可变参数模板?

我现在坚持使用 C++03,我想创建一个接受任意数量的类型安全参数的全局函数(如果需要,可以达到合理的限制,比如 9)。

我可以访问我的代码库中的完整 boost 库,所以我希望boost::mpl::vector在这里有用。我也不希望这样写起来太不方便。调用站点的语法应该很简单,如下所示:

以类型安全的方式实现这一点的最佳方法是什么?

编辑

我也意识到我可以为此使用模板专业化,但我不想最终定义相同的结构 9 次,每个额外的模板参数一个。这太乱了。如果可能的话,我想避免这种情况。

0 投票
1 回答
333 浏览

macos - Boost tuple,Mac OS X 10.7 上的链接器错误

我在运行 Mac OS X 10.7.3 的 MacBook Pro 上从源代码编译了 boost 1.49.0,我使用 Xcode 4.3.2 和 Apple 的 LLVM 3.1 作为我的开发环境。以下代码行(来自 boost http server1 示例)导致链接错误,如下所述:

我搜索了答案,但找不到任何相关内容,我也不明白为什么会发生错误。该项目链接到 lboost_system。我错过了什么吗?我是提升图书馆的新手。

0 投票
1 回答
983 浏览

c++ - 搜索 boost::tuple 的向量

boost 库中是否有算法或辅助方法来搜索boost::tuple对象向量?这是我的代码:

我想搜索元组的向量并找到第一个值为 20 的元组作为元组中的第一个元素。我想访问该元组的第二个和第三个元素。

0 投票
1 回答
828 浏览

c++ - 排序提升元组的双端队列

不确定我是否在某处有一个简单的错字,但我在对元组双端队列进行排序时遇到了问题。

所以,我的双端队列看起来像这样:

然后我要排序:

还有我的排序功能:

发生的情况是我在 stl_heap.h 和 stl_algo.h 中出现错误。例如,

调用的对象类型“ <bound member function type>”不是函数或函数参数。


编辑:

为了澄清起见,这一切都发生在类的私有成员中。

0 投票
2 回答
486 浏览

c++ - std::map 的键问题

考虑以下代码。由整数和整数向量组成的元组被定义为映射的键。但是,令我惊讶的是,在插入或查找由整数和整数作为键的元组时,编译器没有抛出任何错误。这怎么可能,因为元组的第二个元素应该是 integer 类型的向量

0 投票
1 回答
383 浏览

c++ - 使用 boost::tuple 引用作为 ordered_unique 索引的键来增加多索引插入错误

我把它归结为我能想到的最简单的示例代码。

我有一个成员索引的 boost multi:

这样做似乎使多索引认为每个项目都是相等的(大小永远不会> 1)

我正在存储一个具有 2 个成员的结构,我希望多索引的唯一键是这两个成员。我认为制作一个引用元组可以相当简单地完成此任务。它的行为不像我预期的那样。当元组中的项目被引用时,似乎每个新项目都与现有项目冲突。可能还值得注意的是,简单地远离引用将使代码的行为符合我的预期,但这并不能帮助我理解为什么引用案例不起作用。

如示例中所述,如果我使元组保持值并且不引用所有内容,则可以按预期工作。

我花了很多时间研究各种可能性(悬空引用、比较 boost:tuples 在一个没有多索引的小程序中的引用等)

这是我的编译命令: g++ -O0 -ggdb -Wall -Werror test.cc -lboost_system -lpthread

运行程序给出:

itr = 1 10 itr = 1 10

表明即使我尝试插入 1,20 和 3,10,multi 似乎也认为它们等于 1,10。

我很困惑。任何和所有的帮助表示赞赏。

0 投票
2 回答
740 浏览

c++ - 使用元组和 boost.fusion,有什么理由使用结构吗?

元组类似于结构(这里讨论:Boost::Tuples vs Structs for return values)。似乎唯一的优点是编写 struct 更方便,因为它更短且通过键而不是数字。

还可以使用 fusion map 和 structs 通过键Boost::Tuples vs Structs 访问返回值来模拟结构。这是一个多一点的写作。

似乎也没有性能损失。好吧,融合可能会更快,因为它使用视图。

所以使用结构的唯一原因是如果您不想再编写几行代码并保持代码可读性?

0 投票
1 回答
3672 浏览

c++ - 提升错误:对“详细信息”的引用不明确

我正在用gcc-4.4.7 --std=c++0xboost-1.53​​ 中的几个库编译一个大型程序。编译器抱怨 boost 库中的一堆错误(如下),但不是我的代码。这是boost库中的错误吗?我将如何找出问题所在?任何建议表示赞赏!