http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56208
Daniel Krügler <daniel.kruegler at googlemail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|[4.8 Regression] sizeof |[4.8 Regression] Some |sfinae fails to work |classic sfinae cases fail | |to work --- Comment #4 from Daniel Krügler <daniel.kruegler at googlemail dot com> 2013-02-04 21:10:19 UTC --- Here are two further variants of the first overload that fail to work since 4.8.0 trunk: (a) template<class> struct res { typedef one type; }; template<class U, class T> static typename res<decltype(make<U>() << make<T>())>::type test(int); (b) template<class> struct res { typedef one type; }; template<class U, class T> static one test(typename res<decltype(make<U>() << make<T>())>::type*); Obviously the actual problem is not related to sizeof, so I changed the issue title accordingly.