草庐IT

ZN5boost

全部标签

c++ - Boost Asio serial_port - 需要 io 帮助

所以我一直在尝试学习boost::asio的东西,以便使用RS232与串行设备进行通信。文档很少,示例也不存在。无法弄清楚如何与设备进行通信。该设备无法发送数据,所以我需要做的就是编写,但其他项目需要实际的来回通信,因此将不胜感激。到目前为止我的代码如下。#includeusingnamespace::boost::asio;intmain(){io_serviceio;serial_portport(io,"COM3");port.set_option(serial_port_base::baud_rate(19200));unsignedcharcommands[4]={1,128

c++ - Boost::Python- 可以从 dict 自动转换 --> std::map?

我有一个C++类,它的成员函数可以接受从小到大的参数。让我们将这些参数命名为a-f。所有参数都有默认值。作为我正在处理的python项目的一部分,我想将这个类公开给python。目前,成员函数看起来像这样:classmyClass{public://Constructors-seta-ftodefaultvalues.voidSetParameters(std::map&);private:doublea,b,c,d,e,f;}voidmyClass::SetParameters(std::mapconst¶ms){//Codetoiterateoverthemap,andse

c++ - 如何在 gnu/linux 上安装 boost

有这么多的教程,但没有什么能说明如何正确安装这个库。我想将它安装在默认的gnu/linux库目录中。我试过了:$sudo./bootstrap.sh$./b2install现在它安装在哪里?安装了吗?运行./b2install后,我得到以下输出:z@z-comptuer:~/Desktop/.mess/boost_1_55_0/tools/build/v2$sudo./b2installwarning:Notoolsetsareconfigured.warning:Configuringdefaulttoolset"gcc".warning:Ifthedefaultiswrong,yo

c++ - 将 Qt 与 STL 和 Boost 混合使用 - 是否有任何桥梁可以让它变得简单?

是否有任何桥梁可以使Qt与STL和Boost的混合尽可能无缝和容易?这是MixingQtandBoost的后续内容,但没有给出具体的解决方法。 最佳答案 您需要哪些桥梁?您可以将所有Qt容器类与标准算法一起使用。大多数时候我更喜欢Qt容器类,因为我确信它们使用写时复制习语(恒定时间操作)。Qt的foreach函数会创建容器的拷贝,因此您可以确定它是一个恒定时间操作,这很好。如果Qt信号槽机制变慢,您可以切换到boost替代方案。Qt信号/槽的伟大之处在于两个线程之间的信号/槽连接。QtConcurrent与BOOST.Lambda配

c++ - 有没有办法在 Boost Asio 中异步等待 future ?

我的问题如下。我异步启动了几个操作,我想继续直到所有操作都完成。使用BoostAsio,最直接的方法如下。假设tasks是某种支持异步操作的对象容器。tasksToGo=tasks.size();for(autotask:tasks){task.async_do_something([](constboost::system::error_code&ec){if(ec){//handleerror}else{if(--taslsToGo==0){tasksFinished();}}});}这个解决方案的问题在于它感觉像是一种解决方法。在Boost1.54中,我可以使用future来做到

c++ - ICU 与 C++ 中的 Boost 语言环境

我正在考虑使用ICU或BoostLocale。各有什么优缺点?我知道两者都使用ICU,但ICU被BoostLocale隐藏。根据BoostLocale'srationalepage:"...整个ICUAPI隐藏在不透明的指针后面,用户无权访问它。"在比较这些库时,请考虑C++11中的新Unicode功能。 最佳答案 ICU是非常好的库,但它也有缺点:就现代C++设计而言,该API很糟糕,并且不能很好地与标准C++库配合使用它是面向UTF-16的它的消息翻译工具远非完美,这就是Boost.Locale使用Gettext模型的原因见:h

c++ - Boost 记录器链接问题

我正在编写一个使用Boost库的程序。我在链接和使用程序选项方面没有任何问题,但我似乎无法让boost日志正常工作。谁能告诉我我错过了什么?jamroot.jamusingclang:::-Isrc/main/headers-std=c++11-stdlib=libc++-std=c++11-stdlib=libc++;libboost_program_optionsboost_log;exefoghorn:[globsrc/main/cpp/*.cpp]boost_program_optionsboost_log;这是我得到的错误:"boost::log::v2s_mt_posix:

c++ - 为什么 std::bind 和 boost::bind 在这个 Boost.Asio 教程中不能互换使用

我正在尝试Boost.Asio文档中的不同教程,并尝试用C++11替换boost组件。但是,我在Timer.5-Synchronisinghandlersinmultithreadedprograms中使用std::bind时遇到错误。.这是建议的代码:#include#include#include#include#includeclassprinter{/*Notreleventhere*/};intmain(){boost::asio::io_serviceio;printerp(io);boost::threadt(boost::bind(&boost::asio::io_se

c++ - std::auto_ptr 或 boost::shared_ptr 用于 pImpl 成语?

使用pImplidiom时是否最好使用boost:shared_ptr而不是std::auto_ptr?我确定我曾经读过boost版本对异常更友好?classFoo{public:Foo();private:structimpl;std::auto_ptrimpl_;};classFoo{public:Foo();private:structimpl;boost::shared_ptrimpl_;};[编辑]使用std::auto_ptr是否总是安全的,或者是否存在需要替代boost智能指针的情况? 最佳答案 您不应该为此使用std

c++ - 标准 vector 和 boost 数组 : which is faster?

boost::array的性能与std::vector相比如何,哪些因素对其影响较大? 最佳答案 boost::array(或C++0x的std::array)应该比std::vector快,因为>boost::array实例完全在堆栈上。这意味着boost::array没有堆分配,这也意味着它不能增长到超过您在构造时为其指定的大小。boost::array的目的是充当原始数组周围的薄层,因此您可以使用.begin()将它们视为标准容器,.end()等。好的编译器应该消除boost::array的所有开销,使其与原始数组的性能相同。