草庐IT

boosting

全部标签

c++ - Boost 调试和发布库是否相同?

我的项目使用boost-win-1.47-32bit-vs2010库。我目前正在Debug模式下运行我的应用程序,它似乎运行良好。现在我计划在Release模式下构建它,我也成功地做到了。但是我担心的是我使用相同的boost库来做到这一点。我从未构建过引导库,所以我不知道我使用的引导库是用于Debug模式还是Release模式。关于我如何找到的任何建议。我正在使用的引导库是否有可能在发布和Debug模式下运行,因为我在更改模式时没有收到任何错误?更新:例如相关文件夹中的每个文件似乎有两个版本libboost_thread-vc100-mt-1_47.liblibboost_thread

c++ - 是否可以使用包含 boost::variant 的 STL 容器并在变体类型本身中使用相同的容器类型?

这似乎是不可能的,但我还是想问问。我定义了一个boost::variant像这样:typedefboost::variantConfigVariant;稍后在我的代码中我定义了一个std::map像这样:std::mapmy_map;现在我希望能够拥有std::map里面的值my_map.例如,我想这样做:my_map[key1][key2]="helloworld";我认为这是不可能的原因是因为相应的变体定义看起来像这样:typedefboost::variantConfigVariant;既然不可能进行这样的类型定义,那么有什么办法可以解决这个问题吗?

c++ - boost spirit skipper - 编译时错误

我有以下代码:#include#include#include#includeBOOST_FUSION_DEFINE_STRUCT((),foo,(int,bar)(int,baz))templatestructparser:boost::spirit::qi::grammar{parser():parser::base_type(start){start%=boost::spirit::qi::int_>>boost::spirit::qi::int_;}boost::spirit::qi::rulestart;};intmain(){conststd::stringinput_da

c++ - 如何使用 boost::preprocessor 解压序列?

如何使用boost::preprocessor解压一个序列对?例如,我有一个序列如下(之间的逗号无关紧要)(int,x)(double,y)(float,z)or(int,x),(double,y),(float,z)or((int)(x))((double)(y))((float)(z))想转换成int,double,float和x,y,z通过使用macor之类的UNZIP(i,seq)其中i是索引。 最佳答案 (int,x,10)(double,y,20)(float,z,30)的解压缩,即元素之间没有逗号的序列。LIVEDEM

c++ - 如何在你的 C++ 项目中包含 boost::thread?

我需要做什么才能在我的项目中包含boost::thread?我已将整个线程文件夹复制到我的工作路径(我希望能够在多台计算机上运行它)并且我得到了fatalerrorC1083:Cannotopenincludefile:'boost/thread/detail/platform.hpp':Nosuchfileordirectory来自#include"thread/thread.hpp"行什么给了?编辑:即使我只是链接到安装预编译二进制文件的boost文件夹,并且我使用#include我明白了fatalerrorLNK1104:cannotopenfile'libboost_threa

c++ - 编译器在构造函数上提示 BOOST_CHECK_THROW

以下不编译:classFoo{public:Foo(boost::shared_ptrarg);};//intest-caseboost::shared_ptrbar;BOOST_CHECK_THROW(Foo(bar),std::logic_error);//compilererrorhereBar的实现无关紧要。编译器提示Foo没有合适的默认构造函数(VC++2005)。如果我添加一个默认构造函数,它就会工作,并且它实际上会被调用。为什么此语句需要默认构造函数? 最佳答案 发生这种情况是因为BOOST_CHECK_THROW是一

c++ - AnyIterator 和 boost 迭代器外观

是否可以使用boost迭代器外观实现任意迭代器?我不想在我的基类中定义实现细节classBase{public:typedefstd::vector::iteratoriterator;//implementationdetail...virtualiteratorbegin()=0;virtualiteratorend()=0;};还是我必须完全从头开始写一个; 最佳答案 您发布的代码修复了从Base返回的迭代器类型及其对std::vector::iterator的所有实现这可能不是你想要的。Jeremiah的建议是解决一个缺点的

c++ - Boost Library的加权中位数被打破了吗?

我承认我不是C++专家。我正在寻找一种计算加权中位数的快速方法,Boost似乎有这种方法。但我似乎无法让它发挥作用。#include#include#include#include#includeusingnamespaceboost::accumulators;intmain(){//Defineanaccumulatorsetaccumulator_set>acc1;accumulator_set,float>acc2;//pushinsomedata...acc1(0.1);acc1(0.2);acc1(0.3);acc1(0.4);acc1(0.5);acc1(0.6);acc

c++ - 使用 boost::spirit 解析引用字符串

我想解析一个句子,其中某些字符串可能未被引用、“引用”或“引用”。下面的代码几乎可以工作-但它无法匹配结束引号。我猜这是因为qq引用。代码中的修改被注释,修改导致“quoted”或“quoted”也被解析并帮助显示原始问题与结束引号有关。该代码还描述了确切的语法。完全清楚:不带引号的字符串解析。像'hello'这样的带引号的字符串将解析左引号',所有字符hello,但无法解析最后的引号'.我又做了一次尝试,类似于boosttutorials中的开始/结束标签匹配。,但没有成功。templatestructtest_parser:qi::grammar{test_parser():tes

c++ - 使用 std::shared_ptr 对象实例创建 boost::thread

我有以下两个代码段。第一个block按预期编译和工作。但是第二个block不编译。我的问题是,给定下面的代码,当尝试基于由shared_ptr代理的对象实例创建线程时,正确的语法是什么?#include#include#include#includestructfoo{voidboo(){}};intmain(){//Thisworks{foo*fptr=newfoo;boost::threadt(&foo::boo,fptr);t.join();deletefptr;}//Thisdoesn'twork{std::shared_ptrfptr(newfoo);boost::threa