草庐IT

boost-pool

全部标签

C++:将 "boost::multiprecision::float128"转换为 "double"

我正在使用boost多精度库,更准确地说是boost::multiprecision::float128类型。使用ICPC进行编译时,我在尝试执行以下操作时遇到一些错误:doublea=functionA();其中functionA()返回一个boost::multiprecision::float128变量。error:nosuitableconversionfunctionfrom"boost::multiprecision::float128"to"double"exists|我该如何解决这个问题? 最佳答案 来自Boost文

c++ - 为什么我们需要 io_service in boost?

我正在尝试学习Boost.asio库。现在我可以创建一个可以通信的客户端和服务器。为什么我们需要定义一个io_service对象?因为如果这是套接字可用于与底层操作系统注册/通信的唯一对象类型,那么我们为什么还要定义它。套接字不能自动猜测吗?我在这里缺少什么? 最佳答案 你是在逆向发现为什么单例不好吗?这就是你的答案。完成后,您就可以控制并决定在Asio中的服务之间共享多少资源。正因为如此,您现在可以在您的应用程序中使用Asio,即使您链接到的库之一也使用它将Asio用于每个线程的服务(因此不会有共享状态)或每个服务的多个线程等等

c++ - 为什么我的 Boost.Regex 搜索只报告一次匹配迭代?

我试图找出一个字符串中有多少个正则表达式匹配项。我正在使用迭代器来迭代匹配项,并使用整数来记录有多少匹配项。longintbefore=GetTickCount();stringtext;boost::regexre("^(\\d{5})\\s(\\d{8})\\s(.*)\\s(.*)\\s(.*)\\s(\\d{8})\\s(.{1})$");char*buffer;longlength;longcount;ifstreamf;f.open("c:\\temp\\test.txt",ios::in|ios::ate);length=f.tellg();f.seekg(0,ios::

c++ - 从列表中删除 boost::shared_ptr 的正确方法是什么?

我有一个std::list的boost::shared_ptr我想从中删除一个项目,但我只有一个T*类型的指针,它与列表中的一个项目匹配。但是我不能使用myList.remove(tPtr)我猜是因为shared_ptr没有实现==为其模板参数类型。我的直接想法是尝试myList.remove(shared_ptr(tPtr))这在语法上是正确的,但它会因临时shared_ptr后的双重删除而崩溃有一个单独的use_count。std::list>myList;T*tThisPtr=newT();//Thisiswrong;onlydoneforexamplecode.//stand-

c++ - 如何让Boost::random和Matlab产生相同的随机数

为了检查我的C++代码,我希望能够让Boost::Random和Matlab产生相同的随机数。所以对于Boost,我使用代码:boost::mt19937var(static_cast(std::time(0)));boost::uniform_intdist(1,6);boost::variate_generator>die(var,dist);die.engine().seed(0);for(inti=0;i产生(程序的每次运行):4456464634对于matlab,我使用:RandStream.setDefaultStream(RandStream('mt19937ar','s

c++ - 是否可以将boost库的广度优先搜索算法应用于矩阵?

我的任务是在矩阵中找到从一点到另一点的最短路线。只能在这样的方向上移动(上、下、左、右)。0000100010000000000101F001010000000100000S0100100000001000000010S-起点F-目的地(Finish)0-空闲单元格(我们可以穿过它们)1-“墙”(我们不能穿过它们)很明显,广度优先搜索以最佳方式解决了这个问题。我知道Boost库提供了这个算法,但我以前没有使用过Boost。如何使用Boost在我的案例中进行广度优先搜索?据我了解,Boost的广度优先搜索算法仅适用于图形。我想将矩阵转换为具有m*n顶点和m*(n-1)+(m-1)*n的图

c++ - Boost 单元测试编译通过 Eclipse 失败

我想通过Eclipse编译以下代码行,但在构建期间我会得到我无法理解的错误。有没有人有解决方案来解决它。#include#defineBOOST_TEST_DYN_LINK#defineBOOST_AUTO_TEST_MAIN#defineBOOST_TEST_MODULEFirst_TestSuiteBOOST_AUTO_TEST_CASE(First_TEst){BOOST_CHECK(2==2);}错误12:55:13****IncrementalBuildofconfigurationDebugforprojectNewProject****Info:InternalBuild

c++ - Boost 程序选项 - 解析命令行时崩溃

我有以下boost::program_options程序。boost::program_options::options_descriptionopts("Allowedoptions");opts.add_options()("help","producehelpmessage"),("mingw",boost::program_options::value(),"SettheinstallpathforMinGW"),("triple",boost::program_options::value(),"Setthetargettriple"),("output",boost::pr

c++ - 从 std::thread 调用 boost::asio::io_service::run

我有一个处理我的连接的类,它有一个boost::asio::io_service成员。我想从std::thread调用io_service::run(),但我遇到了编译错误。std::threadrun_thread(&boost::asio::io_service,std::ref(m_io_service));不起作用。我看到了使用boost::thread执行此操作的各种示例,但我想为此坚持使用std::thread。有什么建议么?谢谢 最佳答案 我知道有两种方法,一种是通过lambda创建std::thread。std::t

c++ - boost ASIO streambuf

我对boostasio::streambuf类中的输入序列和输出序列感到困惑。根据文档中的代码示例(用于发送数据),表示输入序列的缓冲区似乎用于写入套接字,而表示输出序列的缓冲区用于读取。例子-boost::asio::streambufb;std::ostreamos(&b);os现在,有命名问题吗? 最佳答案 boost::asio::streambuf的命名法类似于C++标准中定义的,并在标准模板库中跨各种类使用,其中数据写入输出流,数据从输入流读取。例如,可以使用std::cout.put()写入输出流,使用std::cin