http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56836
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> 2013-04-03 20:53:00 UTC --- I think: : foo( const_cast< const foo<T_>& >(f) ) calls the copy constructor which templates can never be a copy constructor.