(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
cpp1z/
class-deduction101b.C
// PR c++/91911
// { dg-do compile { target c++17 } }
// A variant of class-deduction101.C where SpanType has fewer levels than
// ConstSpanType.

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

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

template<class>
struct B {
  template<class T>
  using ConstSpanType = span<const typename SpanType<T>::value_type>;
};

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