草庐IT

boosting

全部标签

c++ - Boost.Serialization 和 Boost.Python 双向 pickle

我有一个使用Boost.Serialization的C++库。我正在使用Boost.Python为这个库创建Python绑定(bind)。很清楚如何为使用Boost.Serialization的Boost.Python制作一个pickle套件(使用Boost.Serialization保存到一个字符串,然后将该字符串返回给Python)。我想要的是相反的:给定一个boost::python::object,我想要一个serialize(...)将调用Python的pickle.dumps()的函数函数并序列化结果字符串。(想象一个std::vector。当我序列化这个vector时,B

c++ - Memory SPIKE - boost ASIO 异步读取

写了一个只从客户端读取数据的服务器:使用boost::array缓冲区启动服务器,系统监视器显示1MB的使用量。1.)只需执行一个async_read_some并执行一个handleRead,我会在其中再次调用asyncRead函数。voidasyncRead(){m_socket->async_read_some(boost::asio::buffer(m_readBuffer,READ_BLOCK_SIZE),m_strand->wrap(boost::bind(&ConnectionHandler::handleRead,shared_from_this(),boost::asi

c++ - boost 互斥量抛出(奇数?)异常

我正在使用从该网站获得的阻塞队列示例,认为它非常好。这个阻塞队列正在使用boost::mutex。有时会抛出异常:terminatecalledafterthrowinganinstanceof'boost::exception_detail::clone_impl>'what():错误的文件描述符这是阻塞队列代码:#include#include#include#include#include#includestructBlockingQueueTerminate:std::exception{};namespacetools{templateclassBlockingQueue{p

c++ - 使用 Boost.Python 设置包装类的元类

我有一个用C++定义的Event类,我使用Boost将其公开给Python。我的脚本应该派生自此类,并且我想在定义新的子类时进行一些初始化。如何设置公开的Event类的元类,以便每当Python脚本从此类派生时,元类都可以执行所需的初始化?我想避免在脚本中显式使用元类...classKeyboardEvent(Event):#ThisiswhatIwantpassclassKeyboardEvent(Event,metaclass=EventMeta):#Thisisnotagoodsolutionpass编辑:部分解决方案似乎没有办法用Boost.Python设置元类。下一个最好的事

c++ - 是否存在序列化 boost::signals2 信号调用的现有方法?

我想序列化boost::signals2信号的多线程调用,以确保来自对象的有关状态更改的通知以明确定义的顺序到达槽。背景我在多线程程序中有一个具有内部状态的对象。程序的其他部分对内部状态的某些部分感兴趣,并且对象通过使用boost::signals2信号公开状态变化,类似于:classObjectWithState{public:enumState{STATE_A,STATE_B,STATE_C,};voidOnEvent(){StatenewState;{boost::lock_guardlock(m_Mutex);//Processeventandchangestatem_Stat

c++ - 多次在 Boost 测试中重复测试用例

有没有办法在Boost测试中重复运行单元测试或一组单元测试?假设我有以下内容:BOOST_FIXTURE_TEST_SUITE(someSuite,someFixture)BOOST_AUTO_TEST_CASE(someTest){...}BOOST_AUTO_TEST_SUITE_END()...并且我想使用设置/拆卸运行someTest假设100次。 最佳答案 您始终可以循环运行您的测试程序。我不相信现在有测试用例/套件级别的功能可以做到这一点。请随时通过票证索取一张。 关于c++

c++ - 如何使用 boost::asio::serial_port 支持硬件流控制?

我正在使用Boost的asio::serial_port库与虚拟串行端口(FTDI芯片)通信。我想使用硬件流控制(即RTS/CTS),但我似乎找不到太多关于如何将它与Boost一起使用的文档。我得到的代码是:serialPort.set_option(boost::asio::serial_port::flow_control(boost::asio::serial_port::flow_control::hardware));有了这一行,程序将不会运行。它说:libc++abi.dylib:terminatecalledthrowinganexceptionAborttrap:6如果

c++ - Eclipse CDT 中的虚假错误:boost::iostreams

我在EclipseCDT(JunoSR1)中有以下代码:#include#include#include#include#includeintmain(){usingnamespacestd;namespaceio=boost::iostreams;ifstreamfile("data.gz",ios_base::in|ios_base::binary);io::filtering_streambufin;in.push(io::gzip_decompressor());//errorherein.push(file);//andhere}g++4.7.2代码没有问题。然而,Eclip

c++ - boost 正则表达式。命名组分为两部分

我对boost::regex::regex_match有疑问。我使用打开的BOOST_REGEX_MATCH_EXTRA工作。我有什么:(这是我的问题的一个简单例子,不是真正的任务)stringinput1="345";stringinput2="347";我想要得到的:listoutput1=[345];listoutput2=[];//notmatched正则表达式:(这工作正常)((?[0-6])[]?)*输出1:what["group"]=5和what["group"].captures()=[3,4,5]输出2:不匹配问题是:我需要从一组正则表达式的多个部分收集数据。我试过了

c++ - 在 C++ 静态 boost::shared_ptr 中保存 python 生成的值

在使用Boost.Python和C++时,有时我们会创建使用类本身和boost::shared_ptr绑定(bind)的类。版本。出于多种原因,这非常方便,可以在很多地方使用。但是,当boost::python时,该机制似乎无法可靠地工作。返回boost::shared_ptr为在Python中生成并记录在C++静态变量中的值。通常,我希望返回boost::shared_ptr持有一个特殊的删除器来处理这个问题,但事实并非如此。似乎发生的是返回的boost::shared_ptr只是包装一个指向在Python中产生的值的指针,没有任何关于删除的特殊考虑。这会导致来自双重删除的一致崩溃(