https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69016
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- N.B. this is not actually valid according to the C++ standard. C++14 only supports auto for the return type, not the parameters. Using placeholder types for the parameters as well is defined by the Concepts TS, which is only supported on GCC trunk (which will be GCC 6). So you are using a non-standard experimental feature in GCC 4.9, which unfortunately is incomplete and doesn't work for multiple parameters. It might be fixable, but you might have to wait for GCC 6 to use the Concetps support.