草庐IT

Boost-asio

全部标签

c++ - 在 Boost::range 中组合适配器

我开始使用Boost::Range以获得pipelineoflazytransformsinC++.我现在的问题是如何将管道分成更小的部分。假设我有:intmain(){automap=boost::adaptors::transformed;//shortenthenameautosink=generate(1)|map([](intx){return2*x;})|map([](intx){returnx+1;})|map([](intx){return3*x;});for(autoi:sink)std::cout我想用magic_transform替换前两个map,即:intmai

c++ - 标准库中 boost::make_transform_iterator 的等价物是什么?

处理constvector时,以下内容不起作用:conststd::vectorv;v.push_back("test");//error:vcannotbemodified相反,您必须在构造它的同一行上初始化vector。然而,即使有这个限制,boost::make_transform_iterator使得在将它们插入v之前对另一个vector的元素做一些事情变得容易。在这个例子中,convert是一个一元函数,返回输入元素的转换版本:autobeg=boost::make_transform_iterator(args.begin(),convert);autoend=boost:

c++ - 具有 boost 变体的静态多态性单访问者与多访问者与动态多态性

我正在比较以下C++多态性方法的性能:方法[1]。使用boost变体的静态多态性,每个方法都有一个单独的访问者方法[2]。使用boost变体的静态多态性,单个访问者使用方法重载调用不同的方法方法[3]。普通的旧动态多态性平台:-Intelx8664位RedHat现代多核处理器,32GBRAM-gcc(GCC)4.8.1与-O2优化-boost1.6.0一些发现:方法[1]似乎明显优于方法[2]和[3]大多数时候方法[3]优于方法[2]我的问题是,为什么方法[2]在我使用访问者但使用方法重载调用正确方法的地方比虚拟方法性能差。我希望静态多态性比动态多态性表现得更好。我知道在方法[2]中传

c++ - 为什么 Boost.Asio 处理程序必须是可复制构造的?

根据http://www.boost.org/doc/libs/1_61_0/doc/html/boost_asio/reference/Handler.html,提供给io_service::post的处理程序必须是可复制构造的。但是,这不包括接受套接字并move响应处理程序的情况,向我保证只有一个处理程序可以处理该作业:autosocket=std::make_unique();accepter.accept(*socket);service.post([s{std::move(socket)}]{asio::write(*s,buffer("response"),ignored_

C++ 模拟/测试 boost::asio::io_stream - 基于异步处理程序

在多年使用C#之后,我最近又回到了C/C++。在那些年里,我发现了模拟和单元测试的值(value)。在C#中查找模拟和单元测试的资源很简单。WRTMocking,而不是C++。我想要一些关于其他人如何使用boost来模拟和测试异步io_service处理程序的指导。例如,在C#中,我会使用MemoryStream来模拟IO.Stream,并假设这是我应该采用的路径。C++模拟/测试最佳实践boost::asio::io_service模拟/测试最佳实践C++异步处理程序模拟/测试最佳实践我已经使用googlemock和googletest开始了这个过程。 最

c++ - 单元测试和 boost::asio

我正在使用boost::asio编写小型XMPP服务器,我想对我的代码进行单元测试。问题:是否有一些现成可用的框架?据我所知,我需要为boost::asio类/模板提供模拟对象,我真的很想(半)自动地做到这一点。是否可以测试并发性(例如,与服务器的多个连接以及它们之间的消息路由)? 最佳答案 1)我写了一个小的套接字类,可以用来替代boost::asio::ip::tcp::socket。如果愿意,可以查看robitzki.de/test_socket.h(test_socket.cpp、test_io_plan.h和test_io

c++ - 如何在 Boost.Process 0.5 中将程序终止与流结束绑定(bind)?

在这个Boost.Process0.5(http://www.highscore.de/boost/process0.5/index.html)的简单示例中,程序(ls)的输出正在提供一个流。流工作正常但与预期相反,流在程序完成后不会变为无效(例如流结束)(类似于以前版本的Boost.Process,例如http://www.highscore.de/boost/process/index.html)为了使流(示例中的是)在子程序退出后自动失效,我缺少什么?也许这是我必须在file_descriptor的Boost.Streamsstream中设置的一个选项?#include//ver

c++ - 如何在 boost::python 嵌入式 python 代码中导入模块?

我正在使用boost::python将一些python代码嵌入到应用程序中。我能够正确评估打印语句或其他表达式,但是当我尝试导入模块时,它没有导入并且应用程序正在退出。此外,嵌入式代码中的globals()函数调用也会产生运行时错误。#includeusingnamespaceboost;usingnamespaceboost::python;usingnamespaceboost::python::api;intmain(void){Py_Initialize();objectmain_module=import("__main__");objectmain_namespace=ma

c++ - 用于 IPC(进程和共享内存)的可移植 C++ 库,Boost vs ACE vs Poco?

我需要一个可移植的C++库来执行IPC。到目前为止,我一直使用fork()和SysV共享内存,但这将我限制在Linux/Unix上。我发现有3个主要的C++库提供可移植的解决方案(包括Windows和MacOSX)。我真的很喜欢Boost,并且想使用它,但我需要流程,而且到目前为止,这似乎只是一个实验性分支!?我以前从未听说过ACE或POCO,因此我陷入困境,我不知道该选择哪个。我当然需要fork()、sleep()(usleep()会很棒)和共享内存。性能和文档也是重要的标准。感谢您的帮助! 最佳答案 BoostInterproc

c++ - Boost::Geometry:如何在 multi_polygon 中连接相交的多边形?

所以我想将所有相互关联的多边形加入一个multi_polygon中。怎么办?我们有这样的图像(一个绿色multi_polygon)我们想要优化(我们可以看到黄色虚线-显然是对multi_polygon的每个多边形而不是一般的multi_polygon执行的简化结果):这里是生成这种图像的可编译代码:#include#include#include#include#include#include#include#includetemplatevoidcreate_svg(std::stringconst&filename,Geometry1const&a,Geometry2const&b