Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/cpp0x/overload2.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// Core 1321 // { dg-do compile { target c++11 } } // Two dependent names are equivalent even if the overload sets found by // phase 1 lookup are different. Merging them keeps the earlier set. int g1(int); template <class T> decltype(g1(T())) f1(); int g1(); template <class T> decltype(g1(T())) f1() { return g1(T()); } int i1 = f1<int>(); // OK, g1(int) was declared before the first f1 template <class T> decltype(g2(T())) f2(); // { dg-error "g2. was not declared" } int g2(int); template <class T> decltype(g2(T())) f2() { return g2(T()); } int i2 = f2<int>(); // { dg-error "no match" } int g3(); template <class T> decltype(g3(T())) f3(); // { dg-error "too many arguments" } int g3(int); template <class T> decltype(g3(T())) f3() { return g3(T()); } int i3 = f3<int>(); // { dg-error "no match" }