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.

Reply via email to