https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67228

Alisdair Meredith <alisdairm at me dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |alisdairm at me dot com

--- Comment #1 from Alisdair Meredith <alisdairm at me dot com> ---
Finally tracked down a simple reproducer from our own code base, that looks
simpler to run into (we have had a gcc specific workaround for years, but
apparently never filed a bugzilla report):

template <typename T, typename A, typename... Args>
T make(A, Args&&...) { return {}; }

template <typename T, typename A, typename... Args>
T make(A*, Args&&...) { return {}; }

int main() {
   int * p = 0;
   auto x = make<int>(p, 1);
}

Reproducible on every gcc available on Compiler Explorer, including trunk.  All
other C++11 compilers pass this test.

The ambiguity goes away if I remove the parameter pack argument at the call
site (i.e., deduce an empty pack).

Reply via email to