草庐IT

boost_thread

全部标签

c++ - 为什么 boost::call_traits<double>::param_type 是 "const double&"而不是 "double"

我在win32program@windows7机器上使用代码“boost::call_traits::param_type”。令我惊讶的是,它不是“double”而是“constdouble&”。我认为所有原始类型都适合对函数参数使用“按值传递”,这不是常识吗?因为很多人会使用is_pod来判断是否使用引用,不是吗? 最佳答案 根据doc,该优化显然只适用于“小型”内置类型。.快速浏览source,看起来“小”类型被认为是满足sizeof(T)的类型.在32位机器上,这显然不包括double.在某些情况下,将参数传递为double可

c++ - 如何使用 boost::spirit::lex 实现包含指令?

我有一个从spirit::lex和spirit::qi构建的简单配置文件解析器。当词法分析器到达模式include"path"时,我希望包含文件的文本。你可能知道,spirit::lexer::begin()启动扫描过程://Readfilecontentsintoastd::string...//_firstand_lastareconstchar*_first=_contents.c_str();_last=&_first[_input.size()];//_tokenisalexer::iterator_typeforthecurrenttoken_token=_lexer.be

c++ - GDB 中用于 C++ 模板(moSTLy boost)的代码更清晰、更漂亮的堆栈跟踪

我开发的金融应用程序(Linux/C++/gcc)广泛使用了boost和模板。通过GDB调试时生成的堆栈跟踪非常复杂,boost的内部模板连接在输出中添加了很多丑陋的噪音。有谁知道为C++模板繁重(尤其是boost-heavy)代码获得更清晰、更漂亮和更有洞察力的堆栈跟踪的方法吗? 最佳答案 较新版本的GDB中的Python支持已用于为STL等模板密集型结构提供pretty-print。http://sourceware.org/gdb/wiki/PythonGdbTutorialhttp://sourceware.org/gdb/

c++ - Boost asio - 多个客户端连接到不同的服务器

我正在尝试为我的应用程序评估使用异步提升udp/tcp套接字操作与同步操作。我一直在努力寻找一个与我的设计相似的示例,但没有找到任何让我相信我可能正在尝试将异步操作融入我的设计的东西,即使它不是正确的路径。我想连接到多个(读取:1-10个之间)服务器并使用不同的协议(protocol)与它们通信;我有4-5个线程正在生成需要与这些服务器连接中的任何一个通信的数据。我当前的设计是同步的,每个服务器连接线程使用一个io_service对象,然后在生产线程和每个连接线程之间使用一个线程安全队列。这种设计在吞吐量性能方面似乎不可扩展,这是我想最大化的。是否有任何示例可以提供这种到不同服务器模式

c++ - 使用 boost::assign::list_of 构造 std::vector 时的歧义

这段代码:std::vector(boost::assign::list_of(1)(2)(3));给出错误:main.cpp:Inmemberfunction'void::RequestHandler::processRequest(Foo&,Bar,unsignedint,unsignedint*,constchar*,boost::shared_ptr&)':main.cpp:450:error:callofoverloaded'vector(boost::assign_detail::generic_list&)'isambiguous/4.4.2/bits/stl_vecto

c++ - 使用带有 `make check` 的 Boost 单元测试框架 (UTF)

我的C++应用程序有各种基于shell的独立程序集成测试以及应用程序API的源代码单元测试。测试通过makecheck目标运行,该目标通过Autotools(autoconf、automake)生成,comewithatest-driverandalogparser.我已经开始采用Boost单元测试框架来更好地管理单元测试套件。有没有办法在makecheck目标下同时运行验收测试和单元测试(使用BoostUTF和标准TAP测试)?我的Makefile.am看起来像这样:check_PROGRAMS=test1test2SOURCES=test1.cpptest2.cppCC=g++TE

c++ - Thread C++ 成员函数模板可变参数模板

我尝试使用线程调用对象的成员函数。如果函数没有可变参数模板(Args...args),没问题,它可以工作:考虑这两个类:基因引擎templateclassGeneticEngine{templateT*run_while(bool(*f)(constT&),constintsize_enf,Args&...args){std::thread(&GeneticThread::func,islands[0],f,size_enf);/*Somecode*/return/*...*/}private:GeneticThread**islands;}遗传线程templateclassGenet

c++ - 在 C++ 中自动绑定(bind) boost::thread?

做的时候:std::vectorvec;intnumber=4;boost::threadworkerThread(&Method,number,vec)givenamethod:templatevoidMethod(intn,std::vector&vec){//doesstuff}为什么我必须手动做:boost::threadworkerThread(&Method,number,boost::ref(vec))?为什么它不通过引用自动传递它?Edit::理论上boost::thread是否有可能做一些宏元编程来调整它,因为C++没有内置反射/内省(introspection)的方

c++ - 使用 boost::mpi 的 mpi 中的消息大小是否有限制?

我目前正在openMPI之上使用boost::mpi编写模拟,一切运行良好。但是,一旦我扩大系统规模,因此必须发送更大的std::vectors,我就会出错。我已将问题简化为以下问题:#include#include#include#include#include#includenamespacempi=boost::mpi;intmain(){mpi::environmentenv;mpi::communicatorworld;std::vectora;std::vectorb;if(world.rank()==0){for(size_ti=1;i打印出来:a1B1a2B2a4B4.

python - 在一个共享对象中 boost python 多个模块

我正在尝试通过boostpython创建一个包含多个模块的包。原因是我们想要公开一个非常大的API,将它分组到不同的模块中以便于使用和保留python内存使用是有意义的。另一方面,我们被迫(出于超出这个问题范围的原因将其编译成单个共享对象)所以我用boostpython创建了一个导出多个模块的包,如下所示:voidexportClass1(){namespacebp=boost::python;//maptheIOnamespacetoasub-module//make"frommyPackage.class1import"workbp::objectclass1Module(bp::