草庐IT

ZN5boost

全部标签

c++ - 如何处理不断发展的 C++ std::namespace?例如:std::tr1::shared_ptr 对比 std::shared_ptr 对比 boost::shared_ptr 对比 boost::tr1::shared_ptr

对于我目前正在处理的代码,我们有时需要使用较旧的编译器在一些较旧的系统上进行编译(例如,我们在较旧的IBMBlueGene/L上运行sims,其支持契约(Contract)规定了一些非常旧的C++编译器)。代码本身使用了shared_ptr,最初是为使用std::tr1::shared_ptr而编写的。在旧的BlueGene机器上编译时,我很快意识到它没有tr1::实现,所以我切换到boost::shared_ptr。原来还有一个boost::tr1::shared_ptr。现在代码在我们的研究小组之外得到了更广泛的使用,可移植性变得更加重要。在大型代码库中处理这些不断演变的标准库问题

c++ - 如何使用 boost::optional<T> 在 C++ 中返回 NULL?

我有一个函数在某些情况下需要返回NULL,还有另一个函数需要测试这个函数的返回值。我知道boost::optional但不确定如何使用语法。下面是上述用法的一个简单示例:intfunct1(conststring&key){//useiteratortolookforkeyinamapif(iterator==map.end()){returnNULL//needhelphere!elsereturnit->second;}voidfunct2(stringkey){if(funct1(key)==NULL){//有人可以帮忙语法吗?谢谢。 最佳答案

c++ - boost::thread - 简单示例不起作用 (C++)

为了开始使用boost::thread,我编写了一个非常简单的示例——它不起作用。谁能指出我的错误?我写了一个非常简单的仿函数类型的类来完成这项工作。它应该计算doublestd::vector的总和,并给我一种稍后获取结果的方法:classSumWorker{private:double_sum;public:SumWorker():_sum(-1.0){}voidoperator()(std::vectorconst&arr){_sum=0.0;for(std::vector::const_iteratori=arr.begin();i!=arr.end();i++){_sum+=

c++ - 我如何使用 Boost.Filesystem 知道文件的类型?

我正在使用Boost,但我无法在安装目录或Web中找到有关文件系统库的完整(或良好)文档。我发现的“-ls”示例非常有用,但还不够。提前致谢:) 最佳答案 这是一个例子:#include#include#includeusingnamespacestd;intmain(){stringfilename="hello.txt";stringextension=boost::filesystem::extension(filename);cout输出为“.txt”提醒:使用'-lboost_system-lboost_filesyste

c++ - 使用 boost::mpl::bool_ 而不是 const bool 的优点

我对使用the的优点感到困惑bool_和bool_类型反对在模板元编程的上下文中简单地使用constbools。boost::mpl库显然更喜欢第一种方法,并定义了诸如and_、or_之类的辅助函数来帮助管理此类bool_。像if_这样的条件元函数“接受”一个bool_作为第一个(模板)参数,但在幕后“调用”一个if_c元函数,它期望一个(const)bool作为第一个(模板)参数。这个决定背后的论据是什么? 最佳答案 这是一个简短的例子,说明我如何不时地使用这些类型。这个例子是不可能的,使用constbool:voiddo_som

c++ - 将 Boost 库添加到 OS X Eclipse 中的 C++ 项目

我一直在尝试使用eclipse使用boost文件系统库来设置C++项目。我关注了these在我的系统上安装boost的说明。方向差不多下载摘录运行bootstrap.sh运行./bjamarchitecture=combined这似乎很顺利,没有错误。然后我启动了eclipse并创建了一个名为test的新测试项目,其中包含一个名为test.cpp的文件。里面的代码是:#include#includeintmain(){boost::filesystem::pathpath("/Users/schoen");//randompathnameboolresult=boost::filesy

c++ - 设置种子 boost::随机

我想通过使用不同的种子数来重置随机序列。运行此测试代码时:boost::mt19937gener(1);boost::normal_distributionnormal(0,1);boost::variate_generator>rng(gener,normal);cout我得到以下输出:#seed(1)viaconstructor-2.9718290311.706951063-0.430498971#seed(2)-2.282022417-0.5887503675#seed(1)0.2504171986#seed(2)-0.5887503675#seed(3)0.2504171986

c++ - Boost lib 似乎缺少 hpp 文件?

我正在尝试编译一个需要Boost的C++项目。我从网站下载了最新版本并将相应的文件复制到相应的libs文件夹(我使用的是MinGW)。当我编译时,我得到这个错误:Infileincludedfrommain.cpp:4:0:headers.h:59:29:fatalerror:boost/foreach.hpp:Nosuchfileordirectorycompilationterminated.我可以找到foreach.hpp的工作拷贝,但我不必手动移动代码文件。解决方案我将boost复制到了错误的文件夹。 最佳答案 我在Ubun

c++ - 使用 boost 抛出异常的 Base64 编码

我尝试使用boostbase64编码器,我找到了一个示例,但我遇到了异常typedeftransform_width,8,6>it_binary_t我用过std::stringb64E(it_binary_t(Encrip.begin()),it_binary_t(Encrip.end()));我明白了Unhandledexceptionat0x75b1b9bcinagentid_coder.exe:MicrosoftC++exception:boost::archive::iterators::dataflow_exceptionatmemorylocation0x0046ed94.

c++ - 如何只使用一个 boost 库/文件?

这个问题在这里已经有了答案:关闭13年前。PossibleDuplicate:Buildingasubsetofboostinwindows我正在使用Visualc++6.0,我想使用boost::random.我找不到任何示例来说明我将如何只使用这个库并且只使用这个库。我可以只将它包含在我的源代码中吗?