草庐IT

BOOST_PP_SEQ_FOLD_LEFT

全部标签

c++ - boost::asio 和 boost::thread 的错误使用

我正在使用boost::asio和boost::thread来实现接受消息的消息服务,如果有,则异步发送它们没有正在处理的消息,或者如果有正在处理的消息,则排队该消息。消息率在我看来很高,大约每秒2.000条消息。有这么多消息,我很少遇到损坏的消息。在2.000封邮件中,大约有4-8封已损坏。我认为问题是由于错误使用了boost::asio和/或boost::thread库造成的。我实现的代码主要是基于thisboosttutorial.我找不到错误,并且由于主要消息已解决,所以我很难缩小问题的范围。也许其他人知道这里出了什么问题?基本上这个类的使用方式如下:(1)在我的程序开始时调用

c++ - 由于抽象模板 arg 的实例化,boost::lambda 表达式无法编译。任何解释和/或解决方法?

我正在学习boost::lambda,并且我已经设法创造了一个我目前所知道的无法解决的情况。显然在boost::lambda的内部,以下示例导致尝试实例化抽象类AbstractFoo,并阻止lambda表达式编译。问题是我不知道它为什么要实例化它,所以我无法尝试解决它。​​任何boost::lambda专家都可以:请告诉我为什么会这样?建议解决方法?例子:#include#include#include#includestructAbstractFoo{typedefboost::shared_ptrPtr;virtualintit()const=0;};structBar:publi

c++ - Boost::HPC 侵入式

用于高性能计算的boost::intrusive库有多好?我想为不可复制的不可分配类使用一个容器。我打算用带有shared_ptr的普通STL。我发现boost::intrusive也可以用于相同的目的。所以我的问题是,它们真的那么有效吗?如果在具有shared_ptr类型的STL容器和boost::intrusive类型之间进行选择,您更喜欢哪一个? 最佳答案 一般来说,侵入式收集在内存使用方面是最有效的。如果您的目标是挤压每一个最后的CPU周期,那是唯一的方法。考虑一个boost共享指针列表。创建新对象时会发生以下情况:从堆中分

Boost.Range 的 C++ 元组 - 获取元素类型的元组?

我正在试验Boost.Range和Boost元组。如果我有一个范围元组,我如何键入定义一个元组或相应的元素值?换句话说,我用什么来代替/*?*/:typedefboost::tuples::tuple&,char[]>TupleOfRanges;typedef/*?*/TupleOfElements;我当然可以手工完成,我会写:typedefboost::tuples::tupleTupleOfElements;甚至:typedeftypenameboost::tuples::element::typeRange0;typedeftypenameboost::tuples::eleme

c++ - Boost::Spirit mini_c 教程

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭8年前。Improvethisquestion是否有任何教程描述来自boost::spirit的mini_c示例?它看起来是使用boost::spirit::qi中的grammar的一个很好的例子,但它相当复杂,一些代码指南会很有帮助。

c++ - 编译器提示模板参数的数量错误,即使它在 boost 库文件中是正确的

boost库中有一个名为has_new_operator.hpp的文件。当我使用GCC4.3.1编译文件时出现以下错误type_traits/has_new_operator.hpp:45:error:wrongnumberoftemplatearguments(1,shouldbe2)type_traits/has_new_operator.hpp:24:error:providedfor'templatestructboost::detail::test'根据第24行,它需要2个参数,这是在第42行中传递的参数。此外,如果您观察第31行,也会执行相同的操作,但编译器不会提示。21:

c++ - boost iostream : how to turn ifstream into memory mapped file?

我想要的是简单地打开文件作为内存映射文件进行读取-以便将来以更快的速度访问它(例如:我们打开文件读取它结束,等待并一次又一次地读取它)同时我希望该文件可以被其他程序修改,当他们修改它时,我希望我的ifstream也能修改。如何使用boostiostreams(或boostinterprocess)做这样的事情?我们可以只是tallos-嘿,这个文件应该为所有应用程序进行内存映射?所以我尝试这样的代码:#include#include#includeusingnamespaceboost::iostreams;intmain(intargc,char**argv){streamout;t

c++ - Boost::FileSystem 链接问题

我按照instructionshere在Windows7(64位)上下载并构建了boost库(版本1.47.0).现在,当我想使用Boost::Filesystem库时,我可以毫无问题地包含头文件,它会编译我的代码文件。问题出现在链接处。我收到以下错误;main.obj:errorLNK2019:unresolvedexternalsymbol"classboost::filesystem3::file_status__cdeclboost::filesystem3::detail::status(classboost::filesystem3::pathconst&,classboo

c++ - boost 图形库 : Bundled Properties and iterating across edges

只是想了解一下BoostGraphLibrary,我有几个问题。我正在编写一些代码,它是BGL图的包装类。我的想法是,我可以随心所欲地操作图表,然后调用包装方法以GEXF(XML)格式输出图表。我的代码是这样的:structVertex{std::stringlabel;...};structEdge{std::stringlabel;doubleweight;...};typedefboost::adjacency_listGraphType;templateclassGEXF{private:Graphgraph;...};templatevoidGEXF::buildXML(){

c++ - 在 Boost Spirit 中解码字符 UTF8 转义

问题:Spirit-generallist大家好,我不确定我的主题是否正确,但测试代码可能会显示我想要实现的目标。我正在尝试解析如下内容:“%40”到“@”“%3C”到“我在下面有一个最小的测试用例。我不明白为什么这是行不通的。这可能是我犯了一个错误,但我没有看到。使用:编译器:gcc4.6Boost:当前主干我使用以下编译行:g++-omain-L/usr/src/boost-trunk/stage/lib-I/usr/src/boost-trunk-g-Werror-Wall-std=c++0x-DBOOST_SPIRIT_USE_PHOENIX_V3main.cpp#includ