https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79070
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed|2017-02-08 00:00:00 |2021-3-30
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
For Barry's example, Clang gives the exact same error in all three cases, which
is much more useful:
79070.C:11:17: error: reference to 'Something' is ambiguous
static_assert(C<Something<int>>);
^
79070.C:8:30: note: candidate found by name lookup is 'Something'
template <typename T> struct Something { };
^
79070.C:2:58: note: candidate found by name lookup is 'N::Something'
template <typename T, typename U, typename V> struct Something { };
^
79070.C:14:3: error: reference to 'Something' is ambiguous
X<Something<int>> x;
^
79070.C:8:30: note: candidate found by name lookup is 'Something'
template <typename T> struct Something { };
^
79070.C:2:58: note: candidate found by name lookup is 'N::Something'
template <typename T, typename U, typename V> struct Something { };
^
79070.C:17:11: error: reference to 'Something' is ambiguous
using T = Something<int>;
^
79070.C:8:30: note: candidate found by name lookup is 'Something'
template <typename T> struct Something { };
^
79070.C:2:58: note: candidate found by name lookup is 'N::Something'
template <typename T, typename U, typename V> struct Something { };
^
3 errors generated.