aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/std
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2020-02-19 12:30:10 +0000
committerJonathan Wakely <jwakely@redhat.com>2020-02-19 12:46:57 +0000
commitaca60ecff35837a1af9383cf67ee7d1c0a718b28 (patch)
tree254483acec8eefd71358a35f7d5ed877b9a06b1a /libstdc++-v3/include/std
parent4cc3b275d310dbf5982544cb88c11630349f414c (diff)
downloadgcc-aca60ecff35837a1af9383cf67ee7d1c0a718b28.zip
gcc-aca60ecff35837a1af9383cf67ee7d1c0a718b28.tar.gz
gcc-aca60ecff35837a1af9383cf67ee7d1c0a718b28.tar.bz2
libstdc++: Add ranges_size_t and rename all_view (LWG 3335)
* include/bits/range_access.h (range_size_t): Define alias template. * include/std/ranges (all_view): Rename to views::all_t (LWG 3335). * testsuite/std/ranges/adaptors/filter.cc: Adjust to new name.
Diffstat (limited to 'libstdc++-v3/include/std')
-rw-r--r--libstdc++-v3/include/std/ranges42
1 files changed, 22 insertions, 20 deletions
diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges
index cf4c19f..b080675 100644
--- a/libstdc++-v3/include/std/ranges
+++ b/libstdc++-v3/include/std/ranges
@@ -1236,10 +1236,11 @@ namespace views
else
return subrange{std::forward<_Range>(__r)};
};
- } // namespace views
- template<viewable_range _Range>
- using all_view = decltype(views::all(declval<_Range>()));
+ template<viewable_range _Range>
+ using all_t = decltype(all(std::declval<_Range>()));
+
+ } // namespace views
// XXX: the following algos are copied from ranges_algo.h to avoid a circular
// dependency with that header.
@@ -1503,7 +1504,7 @@ namespace views
};
template<typename _Range, typename _Pred>
- filter_view(_Range&&, _Pred) -> filter_view<all_view<_Range>, _Pred>;
+ filter_view(_Range&&, _Pred) -> filter_view<views::all_t<_Range>, _Pred>;
namespace views
{
@@ -1836,7 +1837,7 @@ namespace views
};
template<typename _Range, typename _Fp>
- transform_view(_Range&&, _Fp) -> transform_view<all_view<_Range>, _Fp>;
+ transform_view(_Range&&, _Fp) -> transform_view<views::all_t<_Range>, _Fp>;
namespace views
{
@@ -1974,7 +1975,7 @@ namespace views
template<range _Range>
take_view(_Range&&, range_difference_t<_Range>)
- -> take_view<all_view<_Range>>;
+ -> take_view<views::all_t<_Range>>;
namespace views
{
@@ -2066,7 +2067,7 @@ namespace views
template<typename _Range, typename _Pred>
take_while_view(_Range&&, _Pred)
- -> take_while_view<all_view<_Range>, _Pred>;
+ -> take_while_view<views::all_t<_Range>, _Pred>;
namespace views
{
@@ -2143,7 +2144,7 @@ namespace views
template<typename _Range>
drop_view(_Range&&, range_difference_t<_Range>)
- -> drop_view<all_view<_Range>>;
+ -> drop_view<views::all_t<_Range>>;
namespace views
{
@@ -2199,7 +2200,7 @@ namespace views
template<typename _Range, typename _Pred>
drop_while_view(_Range&&, _Pred)
- -> drop_while_view<all_view<_Range>, _Pred>;
+ -> drop_while_view<views::all_t<_Range>, _Pred>;
namespace views
{
@@ -2450,7 +2451,7 @@ namespace views
// XXX: _M_inner is "present only when !is_reference_v<_InnerRange>"
[[no_unique_address]]
conditional_t<!is_reference_v<_InnerRange>,
- all_view<_InnerRange>, __detail::_Empty> _M_inner;
+ views::all_t<_InnerRange>, __detail::_Empty> _M_inner;
public:
join_view() = default;
@@ -2514,7 +2515,7 @@ namespace views
};
template<typename _Range>
- explicit join_view(_Range&&) -> join_view<all_view<_Range>>;
+ explicit join_view(_Range&&) -> join_view<views::all_t<_Range>>;
namespace views
{
@@ -2838,7 +2839,7 @@ namespace views
{ }
template<input_range _Range>
- requires constructible_from<_Vp, all_view<_Range>>
+ requires constructible_from<_Vp, views::all_t<_Range>>
&& constructible_from<_Pattern, single_view<range_value_t<_Range>>>
constexpr
split_view(_Range&& __r, range_value_t<_Range> __e)
@@ -2893,11 +2894,11 @@ namespace views
template<typename _Range, typename _Pred>
split_view(_Range&&, _Pred&&)
- -> split_view<all_view<_Range>, all_view<_Pred>>;
+ -> split_view<views::all_t<_Range>, views::all_t<_Pred>>;
template<input_range _Range>
split_view(_Range&&, range_value_t<_Range>)
- -> split_view<all_view<_Range>, single_view<range_value_t<_Range>>>;
+ -> split_view<views::all_t<_Range>, single_view<range_value_t<_Range>>>;
namespace views
{
@@ -2945,7 +2946,7 @@ namespace views
/* XXX: LWG 3280 didn't remove this constructor, but I think it should?
template<viewable_range _Range>
requires (!common_range<_Range>)
- && constructible_from<_Vp, all_view<_Range>>
+ && constructible_from<_Vp, views::all_t<_Range>>
constexpr explicit
common_view(_Range&& __r)
: _M_base(views::all(std::forward<_Range>(__r)))
@@ -3010,7 +3011,7 @@ namespace views
};
template<typename _Range>
- common_view(_Range&&) -> common_view<all_view<_Range>>;
+ common_view(_Range&&) -> common_view<views::all_t<_Range>>;
namespace views
{
@@ -3083,7 +3084,7 @@ namespace views
};
template<typename _Range>
- reverse_view(_Range&&) -> reverse_view<all_view<_Range>>;
+ reverse_view(_Range&&) -> reverse_view<views::all_t<_Range>>;
namespace views
{
@@ -3356,10 +3357,10 @@ namespace views
};
template<typename _Range>
- using keys_view = elements_view<all_view<_Range>, 0>;
+ using keys_view = elements_view<views::all_t<_Range>, 0>;
template<typename _Range>
- using values_view = elements_view<all_view<_Range>, 1>;
+ using values_view = elements_view<views::all_t<_Range>, 1>;
namespace views
{
@@ -3367,7 +3368,8 @@ namespace views
inline constexpr __adaptor::_RangeAdaptorClosure elements
= [] <viewable_range _Range> (_Range&& __r)
{
- return elements_view<all_view<_Range>, _Nm>{std::forward<_Range>(__r)};
+ using _El = elements_view<views::all_t<_Range>, _Nm>;
+ return _El{std::forward<_Range>(__r)};
};
inline constexpr __adaptor::_RangeAdaptorClosure keys = elements<0>;