Mercurial > hg > CbC > CbC_gcc
annotate gcc/testsuite/g++.dg/cpp0x/sfinae53.C @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children |
rev | line source |
---|---|
111 | 1 // PR c++/59204 |
2 // { dg-do compile { target c++11 } } | |
3 | |
4 template< class T > | |
5 using void_t = void; | |
6 | |
7 template< class T, class = void > | |
8 struct has_type | |
9 { constexpr static bool value = false; }; | |
10 | |
11 template< class T > | |
12 struct has_type<T, void_t<typename T::type>> | |
13 { constexpr static bool value = true; }; | |
14 | |
15 struct yes { using type = int; }; | |
16 struct no { }; | |
17 | |
18 int | |
19 main( ) | |
20 { | |
21 static_assert( has_type<yes>::value, "false negative!" ); | |
22 static_assert( not has_type<no >::value, "false positive!" ); | |
23 } |