inline constexpr bool enable_borrowed_range<elements_view<_Tp, _Nm>>
= enable_borrowed_range<_Tp>;
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 3563. keys_view example is broken
template<typename _Range>
- using keys_view = elements_view<views::all_t<_Range>, 0>;
+ using keys_view = elements_view<_Range, 0>;
template<typename _Range>
- using values_view = elements_view<views::all_t<_Range>, 1>;
+ using values_view = elements_view<_Range, 1>;
namespace views
{
b == e;
}
+void
+test08()
+{
+ // LWG 3563 - keys_view example is broken
+ std::pair<int, int> x[] = {{1,2},{3,4}};
+ auto v = ranges::keys_view{views::all(x)};
+ auto w = ranges::values_view{views::all(x)};
+ using ty1 = decltype(v);
+ using ty1 = ranges::elements_view<views::all_t<decltype((x))>, 0>;
+ using ty2 = decltype(w);
+ using ty2 = ranges::elements_view<views::all_t<decltype((x))>, 1>;
+}
+
int
main()
{
test05();
test06();
test07();
+ test08();
}