id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 7371,boost::spirit::classic::char_parser::parse is incrementing the scanner's first iterator directly instead of using the provided iterator_policy,mhilferink@…,Joel de Guzman,"In boost\spirit\home\classic\core\primitives\primitives.hpp boost::spirit::classic::char_parser::parse is defined to increment the scanner's first iterator directly instead of using the provided iterator_policy. I'm using a scanner with an iterator that doesn't have a ++ operator and provided an iteration policy with redefined advance, get, and at_end methods. This works fine if the following patch is implemented in boost\spirit\home\classic\core\primitives\primitives.hpp: {{{ if (!scan.at_end()) { value_t ch = *scan; if (this->derived().test(ch)) { iterator_t save(scan.first); - ++scan.first; + ++scan; return scan.create_match(1, ch, save, scan.first); } } }}} This patch forwards the increment request to scanner_policies::advance to let it do its thing with scan.first I've seen this (and corrected it locally) at least in boost.sprit from boost version 1.40.0 and 1.51.0 Can somebody with RW access to boost.spirit implement this? Or tell me I should adapt my iterator objects directly. I'm new to GIT and not a spirit developer, but I can try to make a git pull request if that is the way to send-in change requests.",Bugs,closed,To Be Determined,spirit,Boost 1.51.0,Problem,fixed,scanner iterator_policy,