无法获得boost头来编译

时间:2015-08-10 20:56:55

标签: c++ boost

我想使用Boost库来拆分字符串,但是我在Visual Studio中遇到了编译错误。

我的代码有#include "boost/algorithm/string/split.hpp";#include "boost/algorithm/string/classification.hpp";,我的项目包含目录包含C:\Data\Libraries\Boost_1.56.0,其本身包含带有Boost头文件的根boost目录。

然后我有以下内容:

std::string line = "this,is,a,test";
std::vector<std::string> strings;
boost::algorithm::split(strings, line, boost::is_any_of(','));

但是这给了我各种各样的错误,例如:

Error   37  error C2039: 'type' : is not a member of 'boost::mpl::eval_if_c<false,boost::range_const_iterator<char,void>,boost::range_mutable_iterator<char,void>>' C:\Data\Libraries\Boost_1.56.0\boost\range\iterator.hpp 69

任何帮助?

2 个答案:

答案 0 :(得分:1)

该消息令人困惑,因为它基本上是模板元编程发脾气,但问题是boost::is_any_of(',')不能编译,因为','是一个不能单个字符被视为&#34;范围&#34;。

你打算写:

boost::algorithm::split(strings, line, boost::is_any_of(","));
//                                                      ^ ^

答案 1 :(得分:0)

您尝试使用boost::algorithm::split(strings, line, boost::is_any_of(","));Here是使用split函数的另一个解释。