코드는 너무문제 - 다음 반복기를 들여다 보는 방법?
void buildIt(Object& o, Tokenizer::const_iterator begin, Tokenizer::const_iterator end){
if(begin == end) return;
else{
string parent = *begin;
bool hasChild = (begin+1) != end; //error: class booost::token_iterator<...> has no member named 'advance'
}
}
같은 방법은 다음 반복자를 이동하지 않고 유효한지 확인할 수있다?
문제는'begin + 1'입니다. 이 작업은 RandomAccessIterators에서만 지원됩니다. 일반적으로 사용하지 않는 것이 좋습니다. 'boost :: next' /'boost :: prev' 또는'std :: advance'를 사용하십시오. iterator의 상태를 변경하려는 경우에 따라 다름. – pmr
나는 iterator 타입에 따라 std :: advance의 버전을 사용할 것이라고 생각했다. – dchhetri
아니요, advance는'operator +'가 아닌 반복자 유형에 따라 올바른 메소드를 사용할 것입니다. – pmr