草庐IT

boost-pool

全部标签

C++ Boost read_json 崩溃,我有#define BOOST_SPIRIT_THREADSAFE

最近其他人升级了我们的boost库,现在我在大量调用read_json函数时看到这个coredump。以前从未见过这个。而且我在代码中有#defineBOOST_SPIRIT_THREADSAFE,这就是为什么以前没有发生过这种情况。真的需要帮助!谢谢!程序终止,信号11,段错误。#00x00007f062ce0d094instd::mem_fun1_t>>,boost::spirit::classic::parser_context>>,boost::spirit::classic::grammar>>,boost::spirit::classic::parser_context>*

c++ - 线程安全有界队列在 Boost 1.54 中挂起

以下用于有界线程安全队列的代码曾经在Boost1.49中按预期工作。但是,在更新到Boost1.54后,代码不再按预期运行。即,当缓冲区为空(已满)时,消费者线程(生产者线程)永远等待m_not_empty(m_not_full)条件变量并且永远不会醒来(我认为是因为生产者线程没有互斥锁)。1.54版中是否有一些可能破坏代码的更改?或者,也许我遗漏了代码中的错误?#include#include#include#include#includetemplateclassbounded_buffer{public:bounded_buffer(size_tcapacity){cb.set_

c++ - boost::function 的默认构造函数是否有不抛出保证?

问题在标题中。我在引用文档中找不到信息。我不明白为什么默认构造函数会抛出异常,但我需要确保它不会抛出异常以正确记录我的异常保证。 最佳答案 参见http://www.boost.org/doc/libs/1_54_0/doc/html/boost/function.html#idp15443616-bb:它明确指出“不会抛出”。 关于c++-boost::function的默认构造函数是否有不抛出保证?,我们在StackOverflow上找到一个类似的问题:

c++ - boost asio : different thread pool for different tasks

网络上有很多关于创建简单线程池的示例,例如Sample1和Sample2虽然我想要实现的是为不同的任务提供一个单独的线程池。例如,应用程序可能有一个线程池用于处理传入的tcp连接(我们称之为网络池),而另一个线程池用于与数据库(数据库池)对话。这些传入的tcp请求可能需要来自数据库的信息。在这种情况下,它需要请求数据库池中的那些线程执行查询,并异步返回结果。是否有使用boost::asio的推荐方法?每个池都有一个io_service实例吗?这些线程应该如何相互通信(使用boost)?我明白要解释所有这些,代码不会那么短和琐碎,但如果可能的话,一些伪代码将不胜感激。谢谢!

c++ - 在 visual studio 2013 XP 工具集上构建 boost

我需要使用VS2013构建boost(1.55),但常规工具集(toolset=msvc-12.0)在XP上不起作用。XP有一个不同的工具集(您可以在VS本身中更改)。有谁知道我需要使用的工具集字符串才能使用msvc-12.0为XP编译boost?编辑:我正在使用b2.exe谢谢! 最佳答案 检查此链接:https://web.archive.org/web/20130208113614/http://blogs.msdn.com/b/vcblog/archive/2012/10/08/10357555.aspx原始链接(失效):h

c++ - Boost::Asio,SSL 连接问题

几天来我一直试图解决我的问题,但就是无法解决问题。我尝试使用Boost::Asio库和OpenSSL建立SSL连接。有一个示例代码,如何执行此操作:http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/example/cpp03/ssl/client.cpp它构建和运行良好,甚至验证似乎也有效,但是当我发送一个简单的请求时,很长一段时间没有任何反应,然后我收到一条错误消息:“读取失败:短读取”。我想,我只是把请求行本身做错了,但我不知道它是怎么回事。我尝试了以下两行:GET/HTTP/1.1Host:www.google.de

c++ - boost::thread 和 std::thread 兼容性问题?

我有一个关于将boost::threads与一些c++11标准项目混合和匹配的问题,这行得通吗?我实际上还没有测试任何东西,但我正在使用一个系统,该系统使用所有boost::threads和线程组以及中断功能,这些功能在标准中没有开箱即用,因此没有变化。我们的boost1.50版本没有最新的std::atomic和内存排序的东西。我想知道我是否可以将std::atomic和std::内存排序操作load/fectch_add等(获取/释放,放松)与boost线程一起使用,并获得与std::thread相同的结果。这些都是我linux机器上的pthreads,所以我认为答案是肯定的,我可

c++ - 在不同进程上运行 Boost 单元测试

我想在SystemC程序中进行单元测试。这个想法是有多个测试套件,每个套件中有几个测试。每一项测试都需要重置SystemC框架(例如,通过调用sc_simcontext::reset()),但这实际上是不可能的,因为某些错误显然不会随时修复很快。因此,我决定想出一个解决方法。我发现,如果我在不同的进程上运行每个测试,一切都会正常进行。以下代码片段概述了我用来使其工作的方案:voidtest1(){//...sc_start();}voidtest2(){//...sc_start();}typedefstd::functionTestFunction;voidrun_test(Test

c++ - boost asio 中的并发读取和 async_read_some

假设在boost::asio中的套接字上启用了async_read_some服务,如果在同一套接字上调用阻塞读取会发生什么情况?一段伪代码如下:usingboost::asio::local::stream_protocol;boost::asio::io_serviceio;stream_protocol::sockets(io);s.connect(stream_protocol::endpoint(address));s.async_read_some(aBuffer,aCallback);//startasync_readboost::threadthread(boost::b

c++ - boost::lexical_cast 和 double——奇怪的行为

为什么当我写"2.01"和"2.02"时,下面的代码会给我不同的结果?#include#include#includeintmain(){conststd::stringstr="2.02";try{constdoubleb=boost::lexical_cast(str)*100.0;std::cout(b);std::cout输出double:202int:202但是如果我将"2.02"更改为"2.01"它会给我以下输出:double:201badlexicalcast:sourcetypevaluecouldnotbeinterpretedastarget为什么?我正在使用Vis