blob: a823c9c38166f3b642d7dc062f48135098d80d49 [file] [log] [blame]
// 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>;