草庐IT

ZN5boost

全部标签

c++ - 如何在 x86 和 x64 平台之间使用 boost::serialization

我有一个在Windows下作为64位应用程序运行的程序。我想要同一个程序作为32位应用程序工作。它可以编译、链接和运行,但我无法在32位应用程序中读取我用64位应用程序存储的文件。我使用带有二进制存档的boost::serialization来写入和读取文件。该软件已经发布给客户。客户端应该能够使用32位应用程序读取64位应用程序存储的文件。这可能吗?如何?有经验吗? 最佳答案 您可以编写一个64位应用程序,将二进制存档转换为xml存档。这些您可能可以使用32位应用程序阅读并转换为您选择的格式。

c++ - Boost IO Stream 和 ZLib 提速

我有一个大文件,我使用Zlib使用boostIOStreams和过滤流缓冲区压缩了数据:boost::iostreams::array_sourceuncompressedArray(reinterpret_cast(&uncompressedData[0]),uncompressedData.size());boost::iostreams::filtering_streambufout;out.push(*m_compressor);out.push(boost::iostreams::char_back_inserter(compressedData));boost::iostr

C++ 性能 : template vs boost. 任何

我想知道在任何可以使用模板的地方使用boost.any(没有RTTI)类是否会减慢程序速度。由于boostany实际上是模板类的包装器,可以说现代编译器优化会产生相同的效果,对吗?tpl_vs_any.hpp#include#includeusingnamespacestd;templateclasstpl{Tcontent;public:tpl(constT&value):content(value){}operatorT()const{returncontent;}};classany{public:any():content(0){}any(constany&other):con

c++ - Boost Spirit 占位符类型转换

我正在尝试编写一个解析器(作为第一步,当然它会扩展很多)解析一个double并通过将该double传递给我类的工厂方法来创建我的类ExpressionTree的一个对象。这是我的第一次尝试structoperands:qi::grammar{operands():operands::base_type(start){start=qi::double_[qi::_val=ExpressionTree::number(qi::_1)];}qi::rulestart;};这不会编译(不能从boost::spirit::_1_type转换为double)因为(如果我理解正确的话)qi::_1是

c++ - boost 池最大大小

我正在使用boostpool作为静态内存提供程序,voidfunc(){std::vector>v;for(inti=0;i在上面的代码中,我们如何固定池的大小,我的意思是我们知道boost::pool作为静态内存分配器提供,但我无法固定这个池的大小,它一直在增长,那里应该是限制其大小的方法。例如,我只想要一个包含200个block的池,这样我就可以在之后获取200个block,它应该是NULL请让我现在怎么做 最佳答案 我认为boostpool不能提供您想要的。实际上boost::pool_allocator还有4个其他模板参数除

c++ - Boost multiprecision 失败,因为 complex 的实现试图在 _Isinf 或 _Isnan 等内部函数中转换为 double

我需要一个类BSD许可的C(++)多精度库,支持复数,所以我尝试了boost。以下代码失败:#include#includeusingnamespaceboost::multiprecision;std::complex(1.0,2.0)/std::complex(1.0,2.0)在VisualStudio2012中出现错误C2440,因为complex的实现试图在_Isinf或_Isnan等内部函数中强制转换为double。这是我的错误吗?我怎样才能解决这个问题?有更好的库吗? 最佳答案 来自C++1126.4/2:Theeffe

c++ - boost::uuids::random_generator 线程安全吗?

考虑使用g++-std=c++11(GCC4.7.2)编译的函数:boost::uuids::uuidgetID(){staticboost::uuids::random_generatorgenerator;returngenerator();}从多个线程调用getID是否安全?如前所述here根据C++11标准,第一行的局部静态对象定义是线程安全的。问题是在第二行对同一对象generator调用boost::uuids::random_generator::operator()是否也是线程安全的。返回的UUID在单个线程中是否是唯一的? 最佳答案

c++ - 在 boost::python 的类中公开公共(public)结构

我想在带有boost::python的python代码上使用这个C++类/*creature.h*/classHuman{private:public:structemotion{/*Allemotionsarepercentages*/charjoy;chartrust;charfear;charsurprise;charsadness;chardisgust;charanger;charanticipation;charlove;};};问题是如何在boost-python中公开这个公共(public)属性namespacepy=boost::python;BOOST_PYTHON

c++ - boost::单位::数量 "incomplete type"错误

我正在尝试在项目中使用boost::units但遇到了麻烦。我有一个模板类,其中有一些quantity对象作为成员。在一个中,我希望存储一个具有压力维度的值,所以我有quantitypress;声明为成员变量。然而,这给出了一个错误,指出quantity需要两个模板参数(源代码显示第二个模板参数应该默认为double)。如果我然后指定quantitypress;相反,我得到一个错误,上面写着错误:字段“press”的类型不完整。是我做错了什么还是压力的执行有问题?最小示例:#include#includeusingnamespaceboost::units;usingnamespace

c++ - C++ 算法/Boost Lib 是否有基数排序?

我想对整数进行排序,我知道基数排序应该非常棒。有任何库实现这种类型吗? 最佳答案 取决于您定义基数排序的严格程度,因为Boost1.58.0包括Spreadsort,这是一种混合排序算法,它启发式地混合了桶排序和比较排序。对于排序整数并且不需要最坏情况下的Θ(n)效率,Spreadsort应该可以满足您。为了论证,你也可以看看我对LSDradixsort的实现。,这在内存方面效率很低,但有时比Spreadsort更快。您只需要radix_sort分支,但我已链接到speed_test分支,因为它有自述文件。