Подтвердить что ты не робот

Boost Spirit Qi - Дублировать последнее письмо с помощью синтаксического анализа потока

Это может быть очень очевидно, но почему синтаксический анализ на основе потока в boost дублирует последнюю букву? Я должен делать что-то неправильно:

#include <iostream>
#include <sstream>

#include <boost/spirit/include/qi.hpp>

namespace qi = boost::spirit::qi;

int main() {
    std::string input = "hello";
    std::stringstream ss(input);

    std::string r1, r2;
    boost::spirit::istream_iterator first(ss), last;

    qi::phrase_parse(input.begin(), input.end(), qi::lexeme[qi::alpha >> *qi::alnum], qi::space, r1);

    std::cout << r1 << std::endl; // prints "hello"

    qi::phrase_parse(first, last, qi::lexeme[qi::alpha >> *qi::alnum], qi::space, r2);

    std::cout << r2 << std::endl; // prints "helloo"
}

Протестировано с помощью XCode 5.0 и Boost 1.54.0.

Изменить: Проблема, похоже, специфична для libС++. Кто-нибудь, кто использует Clang для подтверждения?

4b9b3361