草庐IT

ZN5boost

全部标签

c++ - 为什么 "boost::function = boost::bind(...)"会创建 13 个临时对象?

我有一些非常基本的测试代码。我有一个只记录所有操作的类。我将它绑定(bind)到boost::function对象,如下所示:voidFunction(constFoo&){printf("Functioninvoked\n");}//...boost::functionfunc;{Foof;printf("\nConstructingfunction\n");func=boost::bind(&Function,f);printf("Constructioncomplete\n\n");}我希望函数对象包含f的拷贝。因此,必须创建至少一个拷贝。但是,我发现我得到了13个临时工。输出是

c++ - 我可以复制构造带有错误信息的 boost::exception 吗?

考虑以下使用boost异常类的代码:classexception:virtualpublicboost::exception{//...};templateclassexception_impl:virtualpublicstd::exception,publicExc{public:exception_impl(constExc&exc):Exc(exc){}virtualconstchar*what()constthrow(){return"blah";}};(实际上这段代码更复杂。例如,exception_impl仅从std::exception派生,如果后者还不是直接或间接基类

c++ - 具有多个分隔符的字符串标记器,包括没有 Boost 的分隔符

我需要在C++中创建字符串解析器。我尝试使用vectorTokenize(conststring&strInput,conststring&strDelims){vectorvS;stringstrOne=strInput;stringdelimiters=strDelims;intstartpos=0;intpos=strOne.find_first_of(delimiters,startpos);while(string::npos!=pos||string::npos!=startpos){if(strOne.substr(startpos,pos-startpos)!="")v

c++ - 使用 Boost::Asio 进行双向 TCP 通信的程序结构

首先,我希望我的问题是有道理的,甚至是可能的!从我读过的关于TCP套接字和Boost::ASIO的内容来看,我认为应该是这样。我要做的是设置两台机器,并在它们之间通过TCP建立一个有效的双向读/写链路。任何一方都应该能够发送一些数据供另一方使用。关于TCP(/IP?)的第一个令人困惑的部分是它需要这种客户端/服务器模型。但是,阅读表明任何一方都可以写作或阅读,所以我还没有完全气馁。我不介意建立任意一方作为客户端,另一方作为服务器。在我的申请中,这可以提前协商,我不关心。不幸的是,我遇到的所有示例似乎都集中在连接到服务器的客户端上,然后服务器立即将一些数据发送回。但我希望客户端也能够写入

c++ - 创建自己的 Boost::Archive 实现

我目前正在创建一个使用Boost::Serialization并且需要实现自己的Boost::Archive的概念,因为必须以某种方式对数据进行序列化。文档中有关于实现自定义存档的文档:http://www.boost.org/doc/libs/1_44_0/libs/serialization/doc/index.html但我很好奇网络上是否还有其他(现实生活)示例。我找不到任何东西。也许有人可以指出我的来源或文章。 最佳答案 示例实现日志归档:http://www.boost.org/doc/libs/1_44_0/libs/s

c++ - 将线性代数库与 Boost::Units 相结合

我正在做大量的科学编程,并在Boost.Units方面取得了非常好的经验,它提供了数量的编译时维度分析(即用单位标记数量,从而通过经典物理维度分析捕获许多错误)并使用Eigen2进行线性代数。但是,Eigen没有单位的概念,虽然您可以在矩阵中为Eigen设置标量,但它期望两个量的乘积产生相同的类型,这对于单位来说显然是不正确的。比如这样的代码:usingboost::units::quantity;namespacesi=boost::units::si;Eigen::Matrix,2,1>meter_vector;quantitynorm=meter_vector.squaredNo

c++ - 使用 std::is_assignable、boost::function 和 nullptr 时出现意外结果

以下表达式使用is_assignable返回true使用gcc4.7和boost1.49时:typedefboost::functionF;std::is_assignable::value但是,此代码无法编译:boost::functionf;f=nullptr;产生这些错误信息:Infileincludedfromc:\mingw\bin\../lib/gcc/i686-pc-mingw32/4.7.0/../../../../include/boost/function/detail/maybe_include.hpp:13:0,fromc:\mingw\bin\../lib/g

c++ - C++ boost 二进制序列化库是否向后/向前兼容?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:BoostSerializationLibraryupgrade我正在尝试为C++应用程序寻找序列化解决方案。我真的很想能够使用boost二进制序列化。如果我要使用旧版本的boost二进制序列化库来序列化一个对象,那么使用新版本的boost库的应用程序是否总是能够读取它?反过来呢?boost对序列化库的向后/兼容性的理念是什么? 最佳答案 他们通过增加标题中的版本来做到这一点。所以是的,从某种意义上说,它是兼容的,如果您尝试读取使用不兼容版本序列化为1.4

c++ - boost::spirit 从语法中组合语法

我已经弄清楚了如何使用精神——也就是说,我写了一个中等复杂的语法。我总是采用扩展程序的方法——一次一个子系统。我已经为一个复杂模型编写了数据结构,它在最高级别有4种类型。我想使用grammarcomposedfromrulesapproach一次解析一种类型的顶级类型——即,我想用一种顶级语法编​​写4个语法。如果这是可能的(我开始怀疑),有人可以发布一个片段或对执行此操作的项目的引用。具有50多个(可能更多)规则(用于正确错误处理)的顶级语法听起来并不有趣(TMP代码易变/编译缓慢,并提供无用的错误消息)。 最佳答案 从一个实际的

c++ - Boost.Asio : The difference between async_read and async_receive

async_read和有什么区别?和async_receive? 最佳答案 async_receive是一个仅接收到缓冲区的函数,但可能无法接收您要求的数量。(它会相等或更少,永远不会更多。)但是,async_read将始终收到您要求的金额,如其所述:Thisfunctionisusedtoasynchronouslyreadacertainnumberofbytesofdatafromastream.Thefunctioncallalwaysreturnsimmediately.Theasynchronousoperationwi