http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56208
--- Comment #5 from Daniel Krügler <daniel.kruegler at googlemail dot com> 2013-02-05 06:37:06 UTC --- I think I found the problem, the root is actually not related to sfinae (fortunately), but to the way how name-lookup in classes work in gcc. The problem can be fixed (as a workaround), if we move the static member function template<class T> static T make(); into namespace scope (as non-member function). I apologize for the lengthy thread within this issue. But it nonetheless is a regression, because that name-lookup worked correctly in previous versions of gcc.