草庐IT

ZN5boost

全部标签

c++ - boost::asio 在线程中启动不同的服务?

似乎所有示例总是显示在所有线程中运行相同的io_service。可以启动多个io_services吗?这是我想做的:在处理用户输入的主线程中启动io_serviceA...在另一个线程中启动另一个io_serviceB,然后可以启动一堆worker线程都共享io_serviceB。io_serviceA上的用户可以“发布”io_serviceB上的工作,以便它在工作池上完成,但io_serviceA(即主线程)上不会完成任何工作。这可能吗?这有意义吗?谢谢 最佳答案 根据我的经验,如果每个cpu一个io_service或每个进程一个

c++ - 更好地处理 boost::program_options 中丢失/错误的键

有没有办法知道当像下面这样的调用失败时涉及到哪个键?boost::program_options::variables_mapvm;...intfoo_bar=vm["some_key"].as();如果键从映射中丢失,或者不能转换为int,我会得到一个相当无用的bad_any_cast,并且我不知道以下任何内容:涉及的关键储值,或者即使它存在。涉及的类型我找不到任何不涉及修改boostheader或将对上述内容的每次调用包装在try..catchblock中的解决方案。我认为这是一个常见问题,所以也许其他人知道更好的方法。 最佳答案

c++ - 将 Boost.Filesystem 静态链接到共享库时出现问题

我正在使用GCC4.5.2和Boost1.46.1构建一个共享库(使用--build-type=complete编译>)这是来自Makefile的命令,它执行链接部分:$(CXX)-static-lboost_filesystem-fpic-shared$^-o$@一切都可以正常编译,但是当它被应用程序加载时出现以下错误:plugins/crashdetect.so:undefinedsymbol:_ZN5boost11filesystem34path21wchar_t_codecvt_facetEvldd输出:linux-gate.so.1=>(0x002f8000)libstdc+

c++ - boost::visit_each 有什么用?

我读了documentationonvisit_each,但如果每个用户都必须重载它,则无法真正看到它到底做了什么,以及它的一般用途。有大佬赐教吗?编辑:也许我很困惑,因为以下是的全部内容。而且我只是看不到任何“访问每个子对象”的“魔法”:namespaceboost{templateinlinevoidvisit_each(Visitor&visitor,constT&t,long){visitor(t);}templateinlinevoidvisit_each(Visitor&visitor,constT&t){visit_each(visitor,t,0);}}也许有人可以给我

c++ - 是否有用于 Boost::asio 的 Web 框架?

用C++做web开发听起来有点奇怪,但是随着node.js的流行,我认为C++做web的东西是合理的。node.js类似于Boost::asio,它们都是异步的并且具有高性能。我认为C++拥有自己的基于Boost::asio的Web框架是很自然的。那么是否有针对Boost::asio的Web框架,如Express、Geddy?为什么不呢? 最佳答案 有pion,这是一个用C++编写的基于boost::asio的HTTP服务器。您可以将其用作C++Web框架的起点。 关于c++-是否有用于

c++ - Boost Asio 回调不会被调用

我正在使用Boost.Asio进行网络操作,它们必须(实际上,可以,没有复杂的数据结构或任何东西)保持相当低的水平,因为我负担不起序列化开销(和库)我发现确实提供了足够好的性能似乎不适合我的情况)。问题出在我从客户端执行的异步写入(在QT中,但这可能与此处无关)。async_write中指定的回调永远不会被调用,我完全不知道为什么。代码是:voidSpikingMatrixClient::addMatrix(){std::coutui->editNetworkSize->text().toInt();std::ostreamout(&buf);out.write(reinterpret

c++ - 使用 Boost Asio 的快速数据(图像)传输服务器客户端

我是网络编程的新手,对使用BoostAsio在客户端和服务器之间连续快速传输数据(图像)的最佳实践有一些疑问。重要的一点,我们不能应用会降低图像质量的压缩。我们使用专用网络(54MBit),除我们之外没有其他流量。我们被推荐使用BoostAsio,因为它似乎适合我们的需要。然而,由于Boost非常强大,它对像我这样没有经验的(Boost)开发人员来说是一个挑战。我们想开发一种尽可能简单的工具,它可以在客户端和服务器之间尽可能快地连续发送图像数据。基本上它是流媒体。我们更愿意使用TCP,但如果我们可以使用UDP获得显着的性能提升,我们不会介意偶尔丢失数据包。数据是一个无符号字符缓冲区(6

c++ - 我如何从 boost::errinfo_nested_exception 中提取任何信息?

我最近开始使用boost::exception。现在我想使用boost::errinfo_nested_exception打印有关错误原因的信息。问题是我无法弄清楚如何从原因中获取信息。我尝试了以下但没有成功:#include#includestructmyex:publicvirtualboost::exception{};intmain(){myexcause;cause(e);//Icantdothis://conststd::string*file=boost::get_error_info(*c);//Northis://conststd::string*file=boost

c++ - 将 boost::function 传递给模板; boost::function 是什么类

我需要将距离函数传递给模板。因此我使用boost::function和boost::bind。但我不明白我必须为类距离传递什么:templateclassCoverTree{Distancedistance;...public:CoverTree(constDistance&distance):max_level(default_max_level),min_level(default_max_level),distance(distance){}...}模板作者的示例如下所示:floateuclidian(conststd::vector&p1,conststd::vector&p2

c++ - 在 boost python 中使用自定义智能指针

我想使用Boost::Python在python中公开包裹在自定义智能指针中的对象注意事项自定义智能指针的现有使用太普遍了经济地升级到boost智能指针我想使用在多个位置描述的自动取消引用技术问题是我似乎不太正确。这是示例代码:LegacyCode::Ptr->遗留智能指针代码LegacyCode::Session->包裹在遗留智能指针中的遗留对象namespaceboost{namespacepython{templateT*get_pointer(LegacyCode::Ptrconst&p){returnp.get();}templatestructpointee>{typede