boost 相关问题

Boost是一系列旨在用于C ++的高质量库。 Boost是免费的,通常被认为是“第二标准库”。

Boost Graphs - 来自 JSON 的确定性图行为

我正在从 JSON 数组文件创建图形,我希望这样当我遍历图形的边和顶点(例如 in_edges()、vertices() 或 topological_sort() )时,它位于准确

回答 1 投票 0

std::lock_guard 异常处理中的死锁

众所周知,std::lock_guard 可能会出现死锁问题。我想知道处理这种情况的最佳做法是什么? 当使用 std::lock_guard 多处处理异常时,它会...

回答 1 投票 0

如何自动命名工作线程池内的 lambda 仿函数

我正在尝试将一堆 lambda 表达式推送到 C++ 的线程池上。 我正在使用 boost::basic_thread_pool 来顺序处理一个人的工作(lambda 函子)并安排在工作队列中。 ...

回答 1 投票 0

在 c++17 中用 std 替换 boost::timed_wait()

我有一个条件变量 std::condition_variable my_cond; 我希望能够用 std 等效项替换 boost::timed_wait() 。 如果前面提到的条件变量是提升...

回答 1 投票 0

流被截断(Boost.Beast / Boost.Asio)

问题: 我正在尝试使用 Boost.Beast 编写 C++ websocket。与 binary.com API 交互需要 Websocket(不同语言的代码示例 - https://developers.binary.com/demos)。乙...

回答 1 投票 0

Boost Asio HTTPS 请求给出“证书验证失败”错误

我正在尝试使用 Boost.Asio 从 C++ 应用程序通过 HTTPS 连接读取数据。我正在解决一个类似的问题(使用 Boost.Asio 和 OpenSSL 的 HTTPS 请求),但仍然收到“

回答 2 投票 0

Boost Graphs - 确保确定性的图行为

我正在根据 JSON 文件中的数据创建图形,并且我希望这样当我遍历图形的边和顶点(例如 in_edges()、vertices() 或 topological_sort() )时,它位于该...

回答 1 投票 0

增强多阵列分段错误

我正在编写一个代码,我使用 3 维 boost 多数组来保存坐标。但我总是在某个时候遇到分段错误。 boost 多数组大小如何受到限制以及如何......

回答 2 投票 0

boostspirit x3 - 以任意顺序解析标记

这基本上是我之前问的问题的后续,@sehe 非常慷慨地回答了! 问题:我如何使用 boostspirit x3 解析多个命令解析器,这是@...

回答 1 投票 0

从 boost 时间转换为 C++11 的 std::chrono

我想用 std::chrono 替换一些 boost 时间线。 *boost::posix_time::ptime myTime( boost::gregorian::date(1960, 1, 1)) 据我所知,公历时间在 C++20 上可用。也是...

回答 1 投票 0

如何正确分配Boost几何派生点类型?

在我的应用程序中,我想使用派生的增强几何点 类型来携带附加数据但未能这样做: #包括 #包括 在我的应用程序中,我想使用派生的增强几何点 键入以携带附加数据但未能这样做: #include <boost/geometry.hpp> #include <boost/geometry/geometries/geometries.hpp> #include <boost/geometry/geometries/point_xy.hpp> namespace bg = boost::geometry; using point_t = bg::model::d2::point_xy<double>; struct taggedPoint_t : point_t { taggedPoint_t(void* data) : mData(data) {} void* mData; }; int main() { point_t p1; bg::assign_values(p1, 1.0, 2.0); // OK taggedPoint_t p2(nullptr); bg::assign_values(p2, 2.0, 3.0); // Fails } 有人可以阐明如何正确执行此操作吗? 我还尝试注册点类型: BOOST_GEOMETRY_REGISTER_POINT_2D(taggedPoint_t, double, cs::cartesian, x, y) 但这也失败了。 Coliru 上的示例代码 BOOST_GEOMETRY_REGISTER_POINT_2D 使用专门针对 bg::model::d2::point_xy 的特征。你的班级没有这些。针对您的类型专门化这些特征,您可以在这里找到它们: https://www.boost.org/doc/libs/1_61_0/boost/geometry/geometries/point_xy.hpp 这不是一个好主意,因为您将在 namespace bg 中编写代码。但会起作用。 使用组合而不是继承来创建tagged_point_xy。像这样 struct taggedPoint_t { bg::point_t point; void* data; }; 事实上,调整你的观点的正确方法是忽略它从已知几何类型派生的,而只调整公共接口: #include <boost/geometry/geometries/register/point.hpp> BOOST_GEOMETRY_REGISTER_POINT_2D_GET_SET(taggedPoint_t, double, bg::cs::cartesian, x, y, x, y) 这有效:Live On Coliru 当然,您也可以提供所有必需的特征并进行概括: template <typename Base> struct taggedPoint : Base { using base_type = Base; taggedPoint(void* data) : mData(data) {} void* mData; }; 你可以让他们明确地“继承”所有特征: namespace boost::geometry::traits { template <typename B> struct tag<taggedPoint<B>> : tag<B> {}; template <typename B> struct dimension<taggedPoint<B>> : dimension<B> {}; template <typename B> struct coordinate_type<taggedPoint<B>> : coordinate_type<B> {}; template <typename B> struct coordinate_system<taggedPoint<B>> : coordinate_system<B> {}; template <typename B> struct access<taggedPoint<B>, 0> : access<B, 0> {}; template <typename B> struct access<taggedPoint<B>, 1> : access<B, 1> {}; template <typename B> struct access<taggedPoint<B>, 2> : access<B, 2> {}; } // namespace boost::geometry::traits 现在您无需进一步注册即可使用它:Live On Coliru 注意事项 https://stackoverflow.com/a/29065421/85371 - 当与标准 Boost Geometry 算法一起使用时,您的“丰富点”数据通常会丢失。请参阅Adam 的回答,了解如何使用自定义策略的提示(这对我来说太先进了)

回答 2 投票 0

我如何使用boostspirit x3解析多个命令解析器

我有一个用例,我需要在 CLI 上接受多个命令。每个命令都有自己的一组参数。到目前为止,已经使用了一个临时的正则表达式样式解析器,想要使用 boost 做得更好

回答 1 投票 0

如何在boost中将归档版本信息添加到结构中

当我尝试将版本信息添加到结构中时,出现错误“boost::serialization::version': 'SumPoint' 不是参数 'T' 的有效模板类型参数” 我如何添加版本

回答 1 投票 0

如何使用 cmake FetchContent 或任何更简单的解决方案直接从 github 使用 Boost 库?

假设我们想在 cmake 多平台项目(ios、macos、android、windows、linux)中使用 boost::file_system 库。一种方法是直接将 boost 源代码复制到我们的

回答 3 投票 0

使用自定义类通过 boost::program_options 验证选项

我的C++经验是在几周的学习中总结出来的。如果我提出的问题对于一些有经验的人来说听起来很荒谬,我深表歉意。 我正在尝试构建一个小项目,并且我已经决定...

回答 1 投票 0

使用自定义比较器和额外参数设置Typedef

我有一个升压有向图的包装器。每个顶点都有一个整数 id 字段,我想在 typedef 中编写一组按 id 排序的顶点描述符。本质上我有: 结构 VertexDat...

回答 1 投票 0

cmake添加boost子项目

我最近将我的项目迁移到了 cmake,并且我很难在子项目中使用我的 boost 依赖项来构建它。 boost 包含在我的 .gitmodules 文件中,如下所示: [子模块“升压”...

回答 1 投票 0

(进程7352)终止,代码为-1073741819

我正在尝试创建一个 REASON API 服务器来接受来自另一个应用程序的请求,但问题是在第一次连接到它之后,它会关闭并出现错误 -1073741819。当...

回答 1 投票 0

将 boost::asio::signal_set 与 SIGTERM 或 SIGSEGV 一起使用

有 signal_set 捕获 SIGTERM 或 SIGINT 的示例。同时注册 SIGABRT 甚至 SIGSEGV 是否被认为是安全的?因为 signal_set 需要 io_context 我不确定这是否...

回答 1 投票 0

FSM 库不提供 UML“执行活动”实现

我在 GitHub 上寻找状态机(FSM、HSM ...)C++ 库(Boost、tinyFSM ...),我注意到它们都没有在状态内提供 UML“执行活动”。他们只提供

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.