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

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Reduced testcase:
template <class T, class T1 = int, class T2 = int> struct f{};
template <class T, class T1 = int> struct g{};
template<template<typename, typename> class T> constexpr int hello()
{
    return 2;
}
template<template<typename, typename, typename> class T> constexpr int hello()
{
    return 3;
}
void foo()
{
    auto i = hello<g>();
    auto j = hello<f>();
}

----- CUT -----
I think clang here is wrong, MSVC and ICC both reject it for the same reason as
GCC.  Basically it looks like clang is not taking into account the default
template arugments.

Reply via email to