草庐IT

boost-pool

全部标签

c++ - 我如何在 void* 和 boost shared_ptr 之间进行转换

我有这些行:typedefboost::shared_ptrA_SPtr;void*f(void*var){...我希望能够做这样的事情:A_SPtrinstance=(void*)(var);我该怎么做?另外,我怎样才能将意义从shared_ptr转换为void*? 最佳答案 只需将指针转换为指向和来自void*的共享指针。shared_ptr到void*:f(reinterpret_cast;(&A_SPtr));void*回到shared_ptr:A_SPtrinstance=*reinterpret_cast(boost::

c++ - 是否有用于阻塞 boost::asio TCP 连接的 boost::iostreams(双向)设备?

我正在研究可移植的C++库,阻止对文件系统和网络的I/O访问。看起来boost::filesystem、boost::iostreams和boost::asio将介于这三者之间他们的工作。明确地说,我目前对boost::asio的异步方面不感兴趣;我只想要一个可移植的阻塞式网络接口(interface)。深入研究,我看到boost::iostreams有一个设备的概念,每个设备都有一个关联的modeconcept.双向模式似乎专门为流式访问全双工TCP连接而量身定制。太棒了。boost::iostreams似乎不支持实际打开TCP连接(与本地文件系统不同。)没关系,boost::asi

c++ - 将 std::map 复制/插入到 boost::bimap

我尝试将std::map的元素复制到boost::bimap中。我无法让std::copy工作(boost文档似乎表明bimap应该与std::copy兼容)。我尝试了以下方法:std::mapcurves;boost::bimap,boost::bimaps::multiset_of>m_curves;...//someinitialisationofcurvesstd::copy(curves.begin(),curves.end(),std::inserter(m_curves,m_curves.end()));//Thisfailsm_curves.insert(curves.

c++ - 使用 boost::posix_time::microsec_clock 的测量误差超过十微秒?

我有以下代码:longlongunsignedintGetCurrentTimestamp(){LARGE_INTEGERres;QueryPerformanceCounter(&res);returnres.QuadPart;}longlongunsignedintinitalizeFrequency(){LARGE_INTEGERres;QueryPerformanceFrequency(&res);returnres.QuadPart;}//starttimestampboost::posix_time::ptimestartTime=boost::posix_time::mic

c++ - 如何识别boost fusion vector 中的类型

如何识别boost::fusionvector中的类型?例如fusion::vectorv;然后可以让我将v[0]识别为int类型,将v[1]识别为double类型和v[2]作为string类型。谢谢。 最佳答案 为了从boost::fusion::vector中提取元素,您需要使用boost::fusion::at_c,如下所示:boost::fusion::vectorv(1,"hello");std::cout(v)N位置的类型是:boost::fusion::result_of::at_c,1>::type

c++ - boost std unique_ptr 的 STL 集合的序列化

我希望能够序列化std::unique_ptr的STL容器。可以吗?顺便说一句,单个std::unique_ptr一切正常。下面是我正在处理的代码,gcc给出了以下错误:useofdeletedfunction‘std::unique_ptr::unique_ptr(conststd::unique_ptr&)[with_Tp=MyDegrees;_Dp=std::default_delete;std::unique_ptr=std::unique_ptr]’如何使代码正常工作?#include#include#include#include#include#include#inclu

c++ - g++ 项目编译与 boost 单元测试

我正在尝试在Linux上编译单元测试(boost),但编译器报错。有人可以检查我的命令吗?g++-oUTest../UTest/UT1.cpp../UTest/UT2.cpp-lboost_system-lboost_thread-lboost_unit_test_framework错误/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crt1.o:Infunction`_start':(.text+0x18):undefinedreferenceto`main'我从g++命令中删除了main(),因为在使用boostuni

c++ - 如何将 BOOST_FUSION_ADAPT_STRUCT 与子结构一起使用?

例如,假设我有以下结构/子结构定义:structaddress_rec{std::stringm_street;std::stringm_state;unsignedm_zip;};structemployee_rec{std::stringm_name;address_recm_address;};我应该如何在employee_rec上使用BOOST_FUSION_ADAPT_STRUCT? 最佳答案 调整两个结构,它也有助于将您的语法分解为每个结构类型,(地址规则和包含地址规则的员工规则)structaddress_rec{st

c++ - boost::container::vector 比 std::vector 快吗?为什么?

我对boostvector和stdvector做了一个有趣的测试如下intN=10000;{boost::timer::auto_cpu_timert;std::vectorv;for(inti=0;iv;for(inti=0;iwin32版本,vc2010编译,/O2/Oy-对于N=10000对于标准vector:0.140849s墙,0.140401s用户+0.000000s系统=0.140401sCPU(99.7%)fboostvector:0.056174s墙,0.062400s用户+0.000000s系统=0.062400sCPU(111.1%)对于N=100,000标准:1

c++ - 带有 boost 的 CMake(在 Windows 上):Could not find libraries?

我正在尝试使用CMake构建我的项目。我也在使用boost。我的CMakeLists.txt文件中的查找包语句是:find_package(Boost1.42所需组件python系统文件系统序列化线程程序选项正则表达式test_exec_monitor)构建失败,我收到的错误消息是:找不到以下Boost库:boost_systemboost_filesystemboost_serializationboost_threadboost_program_options当我检查我的lib目录时,我发现这些库的名称是:libboost-vc100-mt.lib而不是boost_事实上,当我根据