2013-10-01 4 views
0

Я только что установил boost, и все функции, которые я использовал до сих пор, отлично работали, но когда я использовал trim_if, когда вам нужно использовать boost :: is_any_of, он породил несколько ошибок.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; 
} 
+0

Где код? –

ответ

2

Ваша проблема заключается в вызове boost::is_any_of('\t').

is_any_of принимает последовательность символов, и вы передаете один символ.

Изменить код:

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

т.е., использовать двойные quoes вместо одинарных кавычек.

+0

Хорошо, я вижу. Спасибо! – user1812707

Смежные вопросы