草庐IT

ZN5boost

全部标签

c++ - boost::lockfree::queue 在 c++11 中不是无锁的吗?

在这个websocket++示例中,我试图用boost::lockfree::queue替换std::queuehttps://github.com/zaphoyd/websocketpp/blob/experimental/examples/broadcast_server/broadcast_server.cpp看起来它可以在不真正改变任何语法但删除boost::unique_lock行的情况下完成。但是,当我查看boost示例时,它有一个检查无锁的代码部分http://boost-sandbox.sourceforge.net/doc/html/lockfree/examples

c++ - 无法从 boost::asio::io_service::run 捕获异常

我在boost::asio上有一个TCP服务器,它监听连接并在获取连接后开始使用boost::asio::write在循环中发送数据block。boolTcpServer::StartTcpServer(std::shared_ptrio_service){m_ioservice=io_service;m_acceptor.reset(newboost::asio::ip::tcp::acceptor(*m_ioservice,boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(),m_port)));m_socket=std

c++ - 使用 boost::range 在 C++ 中进行花式索引

我想使用boost::range来实现类似于NumPy和Matlab中可用的“花式索引”的功能。具体来说,我想使用另一个容器的元素作为索引来选择一个可索引容器的某些元素。例如,可以在Python中执行以下操作:>>>squares=numpy.arange(10)**2#Step1-setupsquares>>>indices=numpy.array([1,3,4])#Step2-setupindices>>>squares[indices]#Step3-fancyindexingarray([1,9,16])在C++中,使用boost::range,我认为上面的代码看起来像这样:#i

c++ - 编译器或 boost 库的错误?

这个程序(它是从一个更大的程序缩小的)在windows7下用vs2008Release(Win32)模式编译后总是崩溃。我不熟悉汇编代码,不知道这是编译器或boost的错误::ends_with或boost::asio::buffers_iterator。它可以在Ubuntu中用g++编译和执行,没有任何问题。人们说这不太可能是编译器的错误,但在Debug模式下(或禁用优化)编译时,问题确实消失了。这个问题困扰我好几个小时了。任何帮助表示赞赏。提前致谢。#include#include#include#includetypedefboost::asio::buffers_iterato

c++ - boost::interprocess::managed_shared_memory 在不同版本的 boost 之间的兼容性

是否有明确的兼容性保证boost::interprocess::managed_shared_memory可以跨不同的boost版本工作?我打算用它在多个进程之间共享一个整数或十(这实际上将充当它们都读取和写入的一段数据的修订号)。这些进程是单独发布的,并且偶尔会终止使用。问题是:我是否会因为1.51中的managed_shared_memory无法与1.44中的managed_shared_memory进行对话而将自己永远锁定在给定的boost版本上? 最佳答案 根据BoostFAQ:HowcantheBoostlibraries

c++ - boost::spirit::hold_any 是如何工作的?

Evidentlyhold_any的性能优于boost::any。它是如何做到这一点的?编辑:感谢Mat的评论,我找到了一个answerbyhkaiser关于hold_any在另一个问题,但它缺乏细节。欢迎提供更详细的答案。 最佳答案 我认为原因之一是因为boost::hold_any使用模板元编程方法,而boost::any使用继承方法。在内部,boost::spirit::hold_any使用void*存储“值”并使用另一个对象来跟踪数据类型信息:>>boost/spirit/home/support/detail/hold_a

c++ - 如何调试或修复涉及 boost::interprocess managed_shared_memory 的无限循环和堆损坏问题?

我收到以下“第一次机会异常”消息,该消息来self编写的DLL,该DLL在我未编写的可执行文件中运行。也就是说,DLL是一个插件。第一次触发此异常时,尝试打开共享内存映射文件失败。如果我忽略第一次机会异常而只是运行,应用程序最终会卡住或崩溃。First-chanceexceptionat0x76a7c41finnotmyexe.exe:MicrosoftC++exception:boost::interprocess::interprocess_exceptionatmemorylocation0x002bc644..几个小时后,它似乎是由一段无限循环的代码块引起的,直到预期的异常条件

c++ - boost 测试不 init_unit_test_suite

我运行这段代码#defineBOOST_TEST_MAIN#defineBOOST_TEST_DYN_LINK#include#include#include#includeusingnamespaceboost::unit_test;usingnamespacestd;voidTestFoo(){BOOST_CHECK(0==0);}test_suite*init_unit_test_suite(intargc,char*argv[]){std::coutadd(BOOST_TEST_CASE(&TestFoo));returnmaster_test_suite;}但是在运行时它说T

c++ - 缺少 boost 库

我的VSC2013编译器要我链接到libboost_system-vc120-mt-s-1_55.lib但boost\stage\lib中不存在该文件。我只有以vc120-mt-1_55.lib和vc120-mt-gd-1_55.lib结尾的lib文件我用构建了boostbootstrapb2我需要做什么来获取上面的库?编辑:这有效b2variant=debug,releaselink=staticruntime-link=static 最佳答案 您应该构建static版本的boost库。看这个问题Howtobuildboostst

c++ - 闭源库包括 boost 分发

我正在使用一个闭源库(由Activfinancial提供),该库在其API中包含一个boost分发,包括一些boost头文件和boost库文件。我还在我现有的代码库中使用了Boost,我需要从我现有的代码中使用Activ。几点我可以封装我对Activ的使用,这样整个Activ部分相当于我编写的一个类,不会公开任何Activ的header这个单一的头文件没有使用任何boostanything通过这种方式,我可以确保我的代码的Activ部分使用Activ的BoostHPP文件,并且我的代码使用我的Boost的HPP文件我担心的是链接。如何确保我的Activ依赖代码链接到Activ的Boos