提升:is_any_of会产生多个错误

时间:2013-10-01 18:39:01

标签: c++ boost iterator trim

我刚刚安装了boost,我到目前为止使用的所有函数都运行正常,但是当我使用trim_if时需要使用boost :: is_any_of时会产生多个错误。

这是我遇到的一些错误:

error C2868: 'std::iterator_traits<_Iter>::iterator_category' : illegal syntax
for using-declaration; expected qualified-name

error C2825: '_Iter': must be a class or namespace when 
followed by '::'

error C2602: 'boost::range_iterator<C>::type' is not a member of a base class 
of 'boost::range_iterator<C>'

error C2602: 'std::iterator_traits<_Iter>::iterator_category' 
is not a member of a base class of 'std::iterator_traits<_Iter>'

error C2039: 'iterator_category' : is not a member of '`global namespace''

我试图重新安装增强功能,但这不起作用。

代码:

#include <iostream>
#include <string>

#include <boost/algorithm/string.hpp>

int main(int argc, char *argv[])
{
    std::string string = "\t\tthis is a string\t";

    boost::trim_if(string, boost::is_any_of('\t'));

    std::cout << string << std::cout;

    system("pause");
    return 0;
}

1 个答案:

答案 0 :(得分:2)

您的问题出在致电boost::is_any_of('\t')

is_any_of接受一系列字符,并且您传递的是一个字符。

将您的代码更改为:

     boost::trim_if(string, boost::is_any_of("\t"));

,即使用双引号而不是单引号。