草庐IT

ZN5boost

全部标签

c++ - 是否可以在 Boost 库中禁用异常和 RTTI?

我为Android开发了一些native库并使用了Boost库——只是基于header的库。我面临的问题是,当我尝试将我的某些native库链接到某些系统库时,UnsatisfiedLinkError被抛出。这是由于NDK文档中所述的不同C++运行时造成的:YoucanonlyselectasingleC++runtimethatallyourcodewilldependon.ItisnotpossibletomixsharedlibrariescompiledagainstdifferentC++runtimes.系统库不使用RTTI和异常,但我的库隐式使用它。我知道有宏BOOST_

c++ - 将 boost::geometry 多边形转换为 STL 对象

如何将boost::geometry多边形放入STL对象中?我确信这一定很简单,因为我无法在文档中的任何地方找到示例。然而,我花了大约4个完整的工作日来尝试做这件小事。我是C++的新手(长期的R程序员),但这些小的数据转换事情让我发疯。是的,有一个问题的标题很像我的:GettingthecoordinatesofpointsfromaBoostGeometrypolygon但是代码太复杂了(发帖者一直在修改它很多次),我无法理解它的正反面,我也无法想象其他C++新手能够做到。这是一个应该转换为其他一些boost::geometry数据类型的简单示例,因此希望任何人都能理解它。#incl

c++ - 在测试用例中获取 BOOST TEST 测试套件名称

我正在使用BOOSTTEST,我想知道是否有办法从测试用例中找到测试套件。我知道我可以通过以下方式找到测试用例的名称:boost::unit_test::framework::current_test_case().p_name还有办法找出套件名称吗?我的套件案例结构是:套件--->案例1______|-->案例2______|-->案例3谢谢 最佳答案 一个unit_test不仅有p_name还有p_parent_id,也就是测试套件的ID。这两个属性都继承自test_unit,它是unit_test和test_suite的公共(

c++ - boost::序列化和循环引用反序列化

我有一个需要序列化的树状结构。典型结构,每个节点都有parent成员和childrenvector。parent是指向类的原始指针,children是shared_ptr的vector。现在看起来序列化工作正常,但是de-序列化使parent成员未初始化(指向0xcccccccc或0x00000000).parent成员是在实际父对象还没有完成反序列化时加载的,即子对象的parent成员是通过父对象的的反序列化请求加载的>children。由于这是循环的,我想知道是否需要采取特殊措施才能使其正常工作。感谢您的帮助。更新:这是我的序列化函数的样子:templatevoidserializ

c++ - boost 是否使用 C++11 "inline namespaces"来避免运行时出现 ABI 不兼容错误?

C++11具有称为“内联命名空间”的功能,它允许作者在链接时强制执行ABI兼容性,而无需篡改API。例如,来自@HowardHinnant的这些有用的答案解释了libc++如何使用内联命名空间:Usinglibstdc++compiledlibrarieswithclang++-stdlib=libc++Whycan'tclangwithlibc++inc++0xmodelinkthisboost::program_optionsexample?我的问题是:boost是否利用了这个C++11特性?看起来一些boost开发者至少是thinking最终一次使用它。但是那个线程很旧。它曾经发

c++ - 如何在 Linux GPIO 中使用 boost::asio

我有一个使用boost::asio进行异步输入/输出的单线程Linux应用程序。现在我需要扩展此应用程序以读取/sys/class/gpio/gpioXX/value上的GPIO输入。在边缘触发的GPIO输入上使用boost::asio::posix::stream_descriptor可以做到这一点吗?我按如下方式配置了GPIO输入:echoXX>/sys/class/gpio/exportechoin>/sys/class/gpio/gpioXX/directionechoboth>/sys/class/gpio/gpioXX/edge我设法编写了一个基于epoll的测试应用程序,

c++ - 为什么 boost::serialization 不检查 XML 文件中的标签名称?

我开始对XML存档使用boost::serialization。我可以生成和读取数据,但是当我手动修改XML并交换两个标签时,它“失败失败”(即它愉快地进行)。这是一个self完成的小例子,展示了我所看到的:#include#include#include#include#include#includeusingnamespacestd;intmain(void){boost::archive::xml_oarchiveoa(cout);staticconststringproducer="XXX",version="0.0.1";oa这会将XML写入标准输出,其中包含:XXX0.0.

c++ - 为什么 BOOST_FOREACH 无法处理 const boost::ptr_map?

voidmain(){typedefboost::ptr_mapMyMap;//typedefstd::mapMyMap;//incontrastwithstdtypeitworksMyMapmymap;mymap[1]=newchar('a');mymap[2]=newchar('b');mymap[3]=newchar('c');BOOST_FOREACH(MyMap::value_typevalue,mymap){std::cout以下错误消息来自GCC在第二个BOOST_FOREACHerror:conversionfrom'boost::ptr_container_detai

c++ - boost named_mutex 和 remove() 命令

我有一个可以由多个线程创建的类。但是有一个函数需要保护代码,所以我决定使用boost进程间互斥体。每个类在其构造函数中创建或打开相同的Mutex:MyClass::MyClass(){boost::interprocess::named_mutexm_Lock(boost::interprocess::open_or_create,"myLock");}现在关键代码部分被调用了:intMyClass::MyFunction(){boost::interprocess::scoped_locklock(m_Lock,boost::interprocess::try_to_lock);if

c++ - 64bit和32bit进程互通boost::message_queue

大家好,我目前正在尝试找出一种在64位进程和32位进程之间传递数据的方法。由于它是一个实时应用程序并且两者都在同一台计算机上运行,​​因此我很难使用共享内存(shm)。当我在寻找一些使用shm的同步机制时,我对boost::message_queue有所感触。但是它不起作用。我的代码基本上如下:发件人部分message_queue::remove("message_queue");message_queuemq(create_only,"message_queue",100,sizeof(uint8_t));for(uint8_ti=0;i接收部分message_queuemq(ope