$ g++ 0.ii -c 0.ii:106872: error: declaration of 'class R' 0.ii:106610: error: shadows template parm 'class R'
^^^^^^^^^^^ this looks weird for me. 0.ii:106886: error: declaration of 'class R' 0.ii:106610: error: shadows template parm 'class R' 0.ii:106890: error: invalid use of incomplete type 'class boost::function0<R>' 0.ii:106614: error: declaration of 'class boost::function0<R>' 0.ii:106901: error: declaration of 'class R' 0.ii:106610: error: shadows template parm 'class R' 0.ii:106907: error: 'void boost::function0<R>::operator==(const boost::function0<R>&, const boost::function0<R>&)' must take exactly one argument 0.ii:106908: error: declaration of 'class R' 0.ii:106610: error: shadows template parm 'class R' 0.ii:106914: error: 'void boost::function0<R>::operator!=(const boost::function0<R>&, const boost::function0<R>&)' must take exactly one argument 0.ii:106915: error: declaration of 'class R' 0.ii:106610: error: shadows template parm 'class R' 0.ii:106923: error: 'struct boost::function<R ()()>::clear_type' redeclared with different access 0.ii:106996: error: 'class boost::function<R ()()>' redeclared with different access 0.ii:107006: error: expected unqualified-id before 'namespace' 0.ii:119277: error: expected '}' at end of input -- Summary: broken c++ diagnostics? Product: gcc Version: 4.3.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pluto at agmk dot net GCC target triplet: x86_64-gnu-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38108