// deduction guides
namespace __detail
{
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 4351. integral-constant-like needs more remove_cvref_t
template<typename _Tp>
concept __integral_constant_like =
is_integral_v<remove_cvref_t<decltype(_Tp::value)>>
- && !is_same_v<bool, remove_const_t<decltype(_Tp::value)>>
+ && !is_same_v<bool, remove_cvref_t<decltype(_Tp::value)>>
&& convertible_to<_Tp, decltype(_Tp::value)>
&& equality_comparable_with<_Tp, decltype(_Tp::value)>
&& bool_constant<_Tp() == _Tp::value>::value
verify(std::extents(1, c2), std::extents<size_t, dyn, 2>{1});
verify(std::extents(c2), std::extents<size_t, 2>{});
verify(std::extents(1, c2), std::extents<size_t, dyn, 2>{1});
- verify(std::extents(std::cw<true>, c2), std::extents<size_t, 1, 2>{});
+ verify(std::extents(std::cw<true>, c2), std::extents<size_t, dyn, 2>{1});
#endif
return true;
}
auto c3 = std::constant_wrapper<3>{};
verify(std::mdspan(ptr, 2, c3), std::extents(2, i3));
verify(std::mdspan(ptr, 2, std::cw<3>), std::extents(2, i3));
- verify(std::mdspan(ptr, std::cw<true>, std::cw<3>),
- std::extents(std::cw<1>, i3));
+ verify(std::mdspan(ptr, std::cw<true>, std::cw<3>), std::extents(1, i3));
#endif
return true;
}
static_assert( is_static_span<long, 4>(s17) );
std::span s18(a.data(), std::cw<true>);
- static_assert( is_static_span<long, 1>(s18) );
+ static_assert( is_dynamic_span<long>(s18) );
#endif
}