As reported on [inkscape-devel], lp:inkscape (r10199) fails to build with gcc 4.6. The build failure is as follows:
In file included from 2geom/transforms.cpp:37:0:
./2geom/transforms.h: In member function ‘S&
Geom::ShearBase<S>::operator*=(const S&) [with S = Geom::HShear]’:
./2geom/transforms.h:59:9: instantiated from ‘void
Geom::TransformConcept<T>::constraints() [with T = Geom::HShear]’
/usr/include/boost/concept/detail/has_constraints.hpp:42:98:
instantiated from ‘const bool
boost::concepts::not_satisfied<Geom::TransformConcept<Geom::HShear>
>::value’
/usr/include/boost/concept/detail/has_constraints.hpp:45:31:
instantiated from
‘boost::concepts::not_satisfied<Geom::TransformConcept<Geom::HShear> >’
/usr/include/boost/mpl/if.hpp:67:11: instantiated from
‘boost::mpl::if_<boost::concepts::not_satisfied<Geom::TransformConcept<Geom::HShear> >, boost::concepts::constraint<Geom::TransformConcept<Geom::HShear> >, boost::concepts::requirement<boost::concepts::failed************ Geom::TransformConcept<Geom::HShear>::************> >’
/usr/include/boost/concept/detail/general.hpp:50:8: instantiated from
‘boost::concepts::requirement_<void
(*)(Geom::TransformConcept<Geom::HShear>)>’
2geom/transforms.cpp:121:120: instantiated from here
./2geom/transforms.h:212:77: error: invalid initialization of reference
of type ‘Geom::HShear&’ from expression of type ‘const Geom::HShear’
./2geom/transforms.h: In member function ‘S&
Geom::ShearBase<S>::operator*=(const S&) [with S = Geom::VShear]’:
./2geom/transforms.h:59:9: instantiated from ‘void
Geom::TransformConcept<T>::constraints() [with T = Geom::VShear]’
/usr/include/boost/concept/detail/has_constraints.hpp:42:98:
instantiated from ‘const bool
boost::concepts::not_satisfied<Geom::TransformConcept<Geom::VShear>
>::value’
/usr/include/boost/concept/detail/has_constraints.hpp:45:31:
instantiated from
‘boost::concepts::not_satisfied<Geom::TransformConcept<Geom::VShear> >’
/usr/include/boost/mpl/if.hpp:67:11: instantiated from
‘boost::mpl::if_<boost::concepts::not_satisfied<Geom::TransformConcept<Geom::VShear> >, boost::concepts::constraint<Geom::TransformConcept<Geom::VShear> >, boost::concepts::requirement<boost::concepts::failed************ Geom::TransformConcept<Geom::VShear>::************> >’
/usr/include/boost/concept/detail/general.hpp:50:8: instantiated from
‘boost::concepts::requirement_<void
(*)(Geom::TransformConcept<Geom::VShear>)>’
2geom/transforms.cpp:122:120: instantiated from here
./2geom/transforms.h:212:77: error: invalid initialization of reference
of type ‘Geom::VShear&’ from expression of type ‘const Geom::VShear’
./2geom/transforms.h: In member function ‘S&
Geom::ShearBase<S>::operator*=(const S&) [with S = Geom::HShear]’:
./2geom/transforms.h:212:80: warning: control reaches end of non-void
function [-Wreturn-type]
./2geom/transforms.h: In member function ‘S&
Geom::ShearBase<S>::operator*=(const S&) [with S = Geom::VShear]’:
./2geom/transforms.h:212:80: warning: control reaches end of non-void
function [-Wreturn-type]
make[3]: *** [2geom/transforms.o] Error 1
I can confirm this in Ubuntu Natty with libboost_1.42 and gcc_4.6.0.