annotate gcc/testsuite/g++.dg/cpp1y/var-templ47.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // PR c++/69009
kono
parents:
diff changeset
2 // { dg-do compile { target c++14 } }
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 using _uchar = char;
kono
parents:
diff changeset
5 using _size_t = decltype(sizeof(_uchar));
kono
parents:
diff changeset
6 using size_t = _size_t;
kono
parents:
diff changeset
7 template <class T, T> struct integral_constant;
kono
parents:
diff changeset
8 template <bool b> using bool_constant = integral_constant<bool, b>;
kono
parents:
diff changeset
9 template <class> constexpr auto tuple_size_v = 0;
kono
parents:
diff changeset
10 template <class T> auto const tuple_size_v<T const volatile> = tuple_size_v<T>;
kono
parents:
diff changeset
11 template <class T>
kono
parents:
diff changeset
12 using tuple_size = integral_constant<size_t, tuple_size_v<T>>;
kono
parents:
diff changeset
13 template <typename Base, typename Deriv>
kono
parents:
diff changeset
14 using is_base_of = bool_constant<__is_base_of(Base, Deriv)>;
kono
parents:
diff changeset
15 template <class T, size_t N> void test() {
kono
parents:
diff changeset
16 is_base_of<integral_constant<size_t, N>, tuple_size<T>> value(
kono
parents:
diff changeset
17 is_base_of<integral_constant<size_t, N>, tuple_size<const volatile T>>);
kono
parents:
diff changeset
18 }
kono
parents:
diff changeset
19 void foo() { test<int, 0>; }