http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58752
--- Comment #6 from Daniel Krügler <daniel.kruegler at googlemail dot com> --- (In reply to Richard Smith from comment #4) Richard, could you please explain what precisely you meant with: "Deducing #1 from #2 gives T=const U, which results in a deduction failure because enable_if<...const U...>::type is not 'void'." ? I'm not sure how to understand this, given the fact, that I would think that "enable_if<...const U...>::type" is void, since 'void' is the default template type parameter of std::enable_if.