// PR c++/83144 // { dg-do compile { target c++11 } } template class tuple; struct _Head_base { int _M_head_impl; }; template struct _Tuple_impl; template struct _Tuple_impl<_Idx, _Head, _Tail...> : _Head_base {}; template struct tuple<_T1, _T2> : _Tuple_impl<0, _T2> { template tuple(_U1, _U2); }; template void get(tuple<_Elements...>); template struct interval_t : tuple { using tuple::tuple; constexpr T last() { get<1>(*this); } auto size() -> decltype(last() - 0); }; int main(int argc, char **) { interval_t{2, argc}; }