id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 2234,Spirit2/Phoenix compilation error (front on iterator_range),François Barel ,Joel de Guzman,"The following source: {{{ #include using namespace ::boost::spirit; using namespace ::boost::spirit::qi; using namespace ::boost::spirit::arg_names; #include using namespace ::boost::phoenix; int main() { rule< const wchar_t* > r; r = raw[ wchar ][ front(_1) ]; return 0; } }}} worked several months ago (before Spirit2 was brought in Boost svn), but no longer compiles with current svn-trunk, gcc gives the following error: {{{ .../boost/spirit/home/phoenix/stl/container/detail/container.hpp:42: error: no type named ‘const_reference’ in ‘const class boost::iterator_range’ }}} [[BR]] It seems due to r44555 which made attributes const in actions, as {{{boost::iterator_range}}} does not contain a {{{const_reference}}} typedef. Note that replacing {{{front}}} with {{{*begin}}} works around the problem, since {{{boost::iterator_range}}} does contain a {{{const_iterator}}} typedef. [[BR]] I don't know enough about {{{iterator_range}}} and Phoenix type deduction to know in which one this should be fixed... please tell me if I should submit a feature request ticket to add a {{{const_reference}}} typedef to {{{iterator_range}}}.",Bugs,closed,Boost 1.37.0,spirit,Boost 1.36.0,Regression,fixed,spirit phoenix action attribute const front iterator_range,