Boost是一系列旨在用于C ++的高质量库。 Boost是免费的,通常被认为是“第二标准库”。
boost::asio::read 抛出编译错误 'read_some' 不是 'boost::shared_ptr<boost::asio::ip::tcp::socket>' 的成员
我正在尝试构建一个客户端以通过特定协议从服务器获取数据。 我知道我的代码不是最好的 - 但目前我仍在尝试 Boos 的基本功能...
`boost::asio::read_pipe::read()`成员函数是否存在?
我正在尝试构建 Boost 网站上显示的一些示例代码,但使用的成员函数似乎不属于 Boost 的一部分: #包括 #包括 #包括<...
从 Boost.Beast 获取基于 TCP 和 SSL 的 websocket::stream 使用的端口
我有一个例子 boost::beast::websocket::stream< boost::beast::ssl_stream< boost::beast::tcp_stream>> 我想获取下面使用的端口号...
boost::uuids::uuid 作为 std::unordered_map 中的键?
我在 Mac OS X 上使用 clang (CXX='clang++ -std=c++11 -stdlib=libc++'),版本为 boost 1.53.0。 我想使用 uuid 作为 unordered_map 中的键,但出现以下错误: /usr/bin/../lib/c++/v1/
我对以下答案有疑问: https://stackoverflow.com/a/15828866/2160256 如前所述,我们不能将基于范围的 BGL 与如下所示一起使用: for(自动 e : boost::ed...
我在共享库插件中使用 boost::python 来运行一些 python 代码。 我的主程序使用 boost::dll::shared_library API 在运行时将共享库作为插件加载。即我的主要
main有一个测试代码,非常简单。 void AddData(std::shared_ptr> 存储) { 商店->推("A ”); 商店->推("B &qu...
Boost.DateTime:如何创建代表今天在任意时区的特定时间的 local_date_time?
我正在使用 Boost.DateTime,我需要创建一个 local_date_time 对象,表示特定时区、特定时间的当前日期。 需要注意的是,这次不会
我想知道是否有一种使用 boost::split 来分割字符串并使用整个字符串作为分隔符的方法。例如: str =“xxaxxxxabcxxxxbxxxcxxx” 有没有办法分割这个字符串
所以......我有一个STL向量,我需要使用用户提供的字符串来搜索/过滤。 (只是提到这一点,以防在这个特定的用例中有一个特定的/更好的方法来做到这一点) 目前(这...
使用 docker 将 C++ 代码和 Boost 库容器化
我有一个名为 main.cpp 的示例脚本,其内容如下: #包括 #包括 #包括 int main() { std::字符串行; 提升::重新...
我正在尝试编译这个小程序: #包括 命名空间提升 { 命名空间数学 { 模板 我正在尝试编译这个小程序: #include <boost/math/distributions/poisson.hpp> namespace boost { namespace math { template <class RealType = double, class Policy = policies::policy<> > class poisson_distribution; typedef poisson_distribution<> poisson; template <class RealType, class Policy> class poisson_distribution { public: typedef RealType value_type; typedef Policy policy_type; poisson_distribution(RealType mean = 1); // Constructor. RealType mean()const; // Accessor. } }} // namespaces boost::math 此代码取自此处。 编译器告诉我找不到boost/math/distributions/poisson.hpp。所以,我尝试自己找到这个文件(使用 locate poisson.hpp 命令)。我找到以下文件:/opt/software/boost/1.45_ubuntu12.4lts_gcc4.5.3/include/boost/math/distributions/poisson.hpp。因此,在我的代码中,我输入了文件的全名,以确保编译器找到它: #include </opt/software/boost/1.45_ubuntu12.4lts_gcc4.5.3/include/boost/math/distributions/poisson.hpp> 但现在我收到另一条错误消息:找不到boost/math/distributions/fwd.hpp。 有没有办法强制编译器在正确的目录中搜索文件? 我使用g++编译器。 您的 g++ 命令中需要包含路径: g++ -I/opt/software/boost/1.45_ubuntu12.4lts_gcc4.5.3/include/ [rest of command here] (也可能是库路径的链接)。 一般来说,在源代码中放置完整路径并不是一个好主意;这完全破坏了可移植性的想法:)(意思是,除了你自己的电脑之外,该代码不能再在世界上任何其他电脑上编译,甚至从现在起半年后that也会变得可疑)。 无论如何,如果您发现自己输入了像上面这样的长编译器行,那么确实是时候开始使用makefile了。 您可能会发现这个问题也很有趣。 (这不是问题的直接答案,而是我认为应该通过 @uoɥʇʎPʎzɐɹC 希望在这里看到的最终完整答案来解决的一系列考虑因素。) 使用 C++ 处理第 3 方依赖项的问题并不是一个简单的问题。有很多方法可以实现此目的,选择适合您的方法取决于您的工具集和环境、您的项目管理以及您想要采取的权衡。 对于 Boost,我们必须记住,它主要是仅包含头文件的库,但某些组件也包含单独编译的部分(可以是静态或动态库,可以是组件强制的,也可以仅针对其特定用例)。 例如。 Boost.Filesystem 需要编译,Boost.Graph 仅当您想要解析 GraphViz 文件时才需要它,而 Boost.Variant 根本不需要它(是“仅标头”库)。 有关详细信息,请参阅 http://www.boost.org/doc/libs/release/more/getting_started/unix-variants.html#header-only-libraries(这会重定向到最新版本,当前为 1.61) . 仅使用 Boost 的仅标头部分可以简化许多考虑因素,但是,当然,有时您也需要其他部分。 需要考虑的事项: 您是否仅使用 Boost 的仅标头部分,或者您需要 也是单独编译的部分吗?如果您需要单独编译 部分,您使用静态库还是动态库?如果你使用 单独编译的部分并想使用动态库,你必须 决定运行应用程序时如何查找动态库 (特别是如果您将项目作为二进制文件分发)。 您的项目是以源代码还是二进制形式分发的?在二进制中 在这种情况下,您主要担心开发人员工作流程(但请参阅 上面关于使用动态库的观点)。在源案例中,您想要 它很容易在其他所有计算机上编译。 您是否希望您的项目坚持使用相同版本的 Boost(位于 至少在您明确决定更改版本之前)或者您想要它 使用特定机器上安装的任何内容(假设有 没有 API 变化)? 您是否同意拥有一份 Boost(或其一部分)以及 项目或者您想要一个供所有项目使用的中心位置? 您想要强制用户执行多少手动配置步骤(结束 用户还是开发人员,取决于上面的其他问题)? (0 是 可能是首选,但总是需要权衡。) 您的项目是仅限 Windows、仅限 Linux 等吗?每个平台都有 它有自己的方式,并且取决于您对其他问题的回答, 您应该使用的方法因操作系统而异。 跨平台,对于我们的主题来说,通常意味着你必须 为您想要的每个平台实施相关方法 支持一下。 您的工具集和构建环境是什么(例如 Visual Studio、Qt、 make,简单的脚本等)? 指定搜索包含文件的目录: -I /opt/software/boost/1.45_ubuntu12.4lts_gcc4.5.3/include 指定搜索库的目录: -L /opt/software/boost/1.45_ubuntu12.4lts_gcc4.5.3/lib 指定实际的库名称: -l foo 当你的库被称为 libfoo.a 您不必在 -I、-L 或 -l 之后写空格,现在这样更容易阅读。 提示: 使用Makefile。也许您已经将 boost include 补丁导出到某个环境变量。
有没有办法在Boost测试中重复运行一个单元测试或一组单元测试? 假设我有以下内容: BOOST_FIXTURE_TEST_SUITE(someSuite,someFixture) BOOST_AUTO_TEST_CASE(一些测试) {...
我不想下载任何东西,但如果必须的话,我可以这样做。我只是尝试在许多在线编译器上使用 Boost 库运行一个简单的多线程程序,但没有一个......
我的 boost 库有一些问题。我正在使用 freebsd 并使用 ports 安装了我的 boost。 Boost 版本是:1.45,我使用 g++47 作为编译器。而且我从未定义过 BOOST DISABLE THREADS...
如果我想使用 boost::erase_all 从字符串中删除所有内容,我可以这样做: boost::erase_all( "a1b1c1", "1" ); 现在,我的字符串是“abc”。但是,如果我想从
boost.python教程期间编译错误(错误:模板参数数量错误(1,应该是4)class_<World>(“World”))
我正在关注https://www.boost.org/doc/libs/1_74_0/libs/python/doc/html/tutorial/tutorial/exusing.html。但boost教程没有说如何构建它。它建议使用 b2 所以我遵循了...
我是 C++ 新手,正在编写一个多线程应用程序,不同的编写者将把对象推送到堆栈上,读者将它们从堆栈中拉出(或者至少将指针推送到对象...
boost::qi 规则与 double,如何解析有符号的 int8?
Boost::qi:我无法将有符号的 int8_t 解析为 double: 模板 结构测试 : qi::grammar { 测试():测试::base_type(开始){ 数量=
与 Arduino 的串行通信仅在重启后收到第一条消息时失败
我有一个 Arduino 设备和 PC。我在板上尝试了以下代码: GPS数据; 字符需要发送; 无效设置(){ 串行.开始(9600); 串行.flush(); 数据.id = 0; 数据...