aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/cpp1z/class-deduction101a.C
blob: 97869e647cc15f5c1af89fcc839231224bafce62 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// PR c++/91911
// { dg-do compile { target c++17 } }
// A variant of class-deduction101.C where SpanType has more levels than
// ConstSpanType.

template<class T>
struct span {
  using value_type = T;
  span(T);
};

template<class>
struct A {
  template<class T>
  using SpanType = decltype(span{T()});
};

template<class T>
using ConstSpanType = span<const typename A<int>::SpanType<const T>::value_type>;

using type = ConstSpanType<int>;
using type = span<const int>;