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