草庐IT

boost_ldpath

全部标签

C++: boost::fusion::for_each 对于许多序列

目前,boost::fusion::for_each迭代单个序列的元素。我正在尝试创建一个函数,该函数将以类似的方式工作,但具有许多序列,并将遍历序列之间的所有可能组合。例如,如果我有三个序列S1、S2、S3,我想创建一个这样的仿函数structmy_functor{templatevoidoperator()(x&el1,y&el2,z&el3){...}}然后调用for_each(s1,s2,s3,my_functor())//appliesthefunctortoallcombinationsofelementsofs1,s2,s3其中s1、s2、s3是S1、S2、S3的实例。我

c++ - 如何在进程运行时捕获标准输出并打印到控制台和文件 (C++/Boost.Process)

我正在开发一个使用Boost的C++Process库启动子进程的应用程序(http://www.highscore.de/boost/process0.5)并使用以下代码将该过程中的标准重定向到一个文件:boost::process::initializers::bind_stdout(boost::iostreams::file_descriptor_sink在这里)上述解决方案和代码运行良好。但是,现在,我需要能够将子进程的标准输出到文件和控制台。我找到了下面的代码,它似乎可以完成这项工作:#include#include#include#includeusingnamespace

c++ - Boost 中的关键字列表运算符

我正在尝试解析一个属性顺序无关紧要的对象。例如解析employeeemployee{surname="doe",firstname="john",age=30}应该和一样employee{age=30,firstname="john",surname="doe"}所以理想情况下我的规则应该是这样的(不要介意缺少正式定义)unordered_rule%=lit("employee")>>"{">>kwd("surname")["=">quoted_string]/kwd("age")["=">int_]/kwd("firstname")["=">quoted_string]/kwd("a

c++ - boost::asio::io_service::run 在没有工作时不返回

来自Asio文档Therun()functionblocksuntilallworkhasfinishedandtherearenomorehandlerstobedispatched,oruntiltheio_servicehasbeenstopped.在下面的代码片段中,Asio除了调试输出(立即计算)外没有任何工作,但run()不返回。#defineBOOST_ASIO_ENABLE_HANDLER_TRACKING#include#include#includeintmain(){namespaceasio=boost::asio;asio::io_serviceios;asi

c++ - boost::posix_time::time_input_facet 可以处理非标准的小数秒分隔符吗?

我正在尝试从文本文件中解析日期时间。时间戳具有微秒精度,但由于我无法控制的历史原因,它们是使用冒号而不是点来分隔小数秒部分创建的,例如:2015/05/0503:10:43:537408代替2015/05/0503:10:43.537408我能够使用以下代码解析这些时间戳而不保留小数秒:#include#include#includenamespacebt=boost::posix_time;conststd::stringinputString="2015/05/0503:10:43:537408";conststd::stringinputFormat="%Y/%m/%d%H:%M

c++ - 如何使用 boost::statecart 在固定数量的线程上多路复用多个异步状态机?

假设我有许多用boost::statecart定义的异步状态机。运行多个异步状态机的明确记录机制是将其中一个或多个固定到一个线程。但是,出于我的目的,我需要运行很多很多异步状态机,而每个线程一个是行不通的。此外,任何给定状态机完成的工作量是不可预测的,因此将状态机分配给固定线程会导致不平衡。相反,我想要一个线程池,空闲线程可以在其中从队列中提取一些工作量。这里需要注意一些事情,以便按顺序将事件传送到给定的状态机。大概开始的地方是涉及实现Scheduler和FifoWorker概念来做我想做的事情,分别作为fifo_scheduler和fifo_worker类的替代方案。但是,我想知道这

Python + setuptools : distributing a pre-compiled shared library with boost. python 绑定(bind)

我有一个C++库(我们在下文中将其称为示例),我使用boost.python库为其编写了Python绑定(bind)。这个Python包装的库将称为pyExample。整个项目是使用CMake构建的,生成的Python包装库是一个名为libpyExample.so的文件。当我使用与libpyExample.so位于同一目录中的Python脚本中的Python绑定(bind)时,我只需编写:importlibpyExamplelibpyExample.hello_world()这会执行包装过程公开的hello_world()函数。我想做什么为了方便起见,我希望我的pyExample库可以

c++ - Boost.Asio - 轮询命名管道

我正在尝试监听命名管道上的输入。我正在使用Boost.Asio的stream_descriptor和async_read在Linux下。问题是,对io_service::run()的调用只会像我希望的那样阻塞,直到第一次读取。在那之后,它只是继续立即调用处理程序并出现“文件结束”错误,即使我尝试向它附加更多async_reads。我的代码等同于以下内容:boost::asio::io_serviceio_service;intfifo_d=open("/tmp/fifo",O_RDONLY);boost::asio::posix::stream_descriptorfifo(io_se

c++ - 为什么 boost::circular_buffer 在我的基准测试中这么慢?

阅读rationale,boost::circular_buffer看起来很有希望:Suitabilityforreal-timeandperformancecriticalapplications.Fastconstant-timeinsertionandremovalofelementsfromthefrontandback.当我运行一个模拟我的用例的简单基准测试时,将其用作字节缓冲区:写一个更大的block读取较小的block直到为空重复性能绝对糟糕,超过4000x比我自己的hack和spsc_queue慢。lin:101//10240xlock:109//10240xcirc:

c++ - 尝试在 cygwin : error: expected unqualified-id before '&&' token 中构建 boost 文件系统时出错

我安装了cygwin2.6和gcc5.4。我安装了boost.build,它似乎可以正常工作。但是,当我尝试构建文件系统模块时,它失败并出现错误:work@PC/lib/boost_1_62_0/libs/filesystem/example/test$./build.shCompilingexampleprograms...tut4.cpp:40:18:error:expectedunqualified-idbefore'&&'tokentut4.cpp:40:18:error:expected';'before'&&'tokentut4.cpp:40:23:error:expect