Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/cpp0x/sfinae37.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
// PR c++/51213 // { dg-do compile { target c++11 } } class C { typedef int type; }; template<int> struct I; template<> struct I<2> { }; template<class T, class = typename T::type> auto f(int) -> char; template<class> auto f(...) -> char (&)[2]; static_assert(sizeof(f<C>(0)) == 2, "Ouch"); typedef int testf[sizeof(f<C>(0)) == 2 ? 1 : -1]; I<sizeof(f<C>(0))> vf; template<class T> auto g(int) -> decltype(typename T::type(), char()); template<class> auto g(...) -> char (&)[2]; static_assert(sizeof(g<C>(0)) == 2, "Ouch"); typedef int testg[sizeof(g<C>(0)) == 2 ? 1 : -1]; I<sizeof(g<C>(0))> vg;