[gcc r16-8557] libstdc++: Rename views::to_input to views::as_input.
Tomasz Kaminski
tkaminsk@gcc.gnu.org
Fri Apr 10 06:08:59 GMT 2026
https://gcc.gnu.org/g:30e3fa619177674d94689d11e4bf67a158e69869
commit r16-8557-g30e3fa619177674d94689d11e4bf67a158e69869
Author: Tomasz Kamiński <tkaminsk@redhat.com>
Date: Thu Apr 9 14:34:35 2026 +0200
libstdc++: Rename views::to_input to views::as_input.
This patch implements P3828R1: Rename the to_input view to as_input.
The paper suggest renaming the feature test macro without changing the
value and this patch follows.
libstdc++-v3/ChangeLog:
* include/bits/version.def (ranges_to_input): Rename to...
(ranges_as_input): Rename from ranges_as_input.
* include/bits/version.h: Regenerate.
* include/std/ranges (ranges::to_input_view, views::to_input)
(__detail::__can_to_input, views::_ToInput): Rename to...
(ranges::as_input_view, views::as_input, __detail::__can_as_input)
(views::_AsInput): Rename from above...
* src/c++23/std.cc.in: Rename views::to_input and to_input_view
export.
* testsuite/25_algorithms/contains/1.cc: Replace views::to_input
with views::as_input.
* testsuite/std/ranges/adaptors/to_input/1.cc: Move to...
* testsuite/std/ranges/adaptors/as_input/1.cc: ...here, and replace
views::to_input with views::as_input.
gcc/testsuite/ChangeLog:
* g++.dg/reflect/range_args.C: Replace views::to_input with
views::as_input.
Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
Signed-off-by: Tomasz Kamiński <tkaminsk@redhat.com>
Diff:
---
gcc/testsuite/g++.dg/reflect/range_args.C | 6 ++---
libstdc++-v3/include/bits/version.def | 2 +-
libstdc++-v3/include/bits/version.h | 12 +++++-----
libstdc++-v3/include/std/ranges | 28 +++++++++++-----------
libstdc++-v3/src/c++23/std.cc.in | 6 ++---
libstdc++-v3/testsuite/25_algorithms/contains/1.cc | 18 +++++++-------
.../ranges/adaptors/{to_input => as_input}/1.cc | 12 +++++-----
7 files changed, 42 insertions(+), 42 deletions(-)
diff --git a/gcc/testsuite/g++.dg/reflect/range_args.C b/gcc/testsuite/g++.dg/reflect/range_args.C
index fa06cf0ebc7e..df9b5e42359f 100644
--- a/gcc/testsuite/g++.dg/reflect/range_args.C
+++ b/gcc/testsuite/g++.dg/reflect/range_args.C
@@ -45,7 +45,7 @@ test_type_range(Rg&& rg)
constexpr info vt[] = {^^int, ^^int, ^^float, ^^int, ^^float, ^^double};
static_assert (test_type_range (vt | std::views::filter (is_integral_type))); // bidirectional
static_assert (test_type_range (vt | std::views::take_while (is_integral_type))); // non-common
-static_assert (test_type_range (vt | std::views::to_input)); // input
+static_assert (test_type_range (vt | std::views::as_input)); // input
static_assert (test_type_range (vt | std::views::cache_latest)); // input, move-only
template<typename Rg>
@@ -74,7 +74,7 @@ constexpr bool not_digit(char c) {
static_assert (test_value_range (vv | std::views::filter (not_digit))); // bidirectional
static_assert (test_value_range (vv | std::views::take_while (not_digit))); // non-common
-static_assert (test_value_range (vv | std::views::to_input)); // input
+static_assert (test_value_range (vv | std::views::as_input)); // input
static_assert (test_value_range (vv | std::views::cache_latest)); // input, move-only
template<int> struct Aggr;
@@ -91,6 +91,6 @@ consteval bool of_int_type(info dm) {
consteval {
define_aggregate (^^Aggr<0>, dmt | std::views::filter (of_int_type)); // bidirectional
define_aggregate (^^Aggr<1>, dmt | std::views::take_while (of_int_type)); // non-common
- define_aggregate (^^Aggr<2>, dmt | std::views::to_input); // input
+ define_aggregate (^^Aggr<2>, dmt | std::views::as_input); // input
define_aggregate (^^Aggr<3>, dmt | std::views::cache_latest); // input, move-only
}
diff --git a/libstdc++-v3/include/bits/version.def b/libstdc++-v3/include/bits/version.def
index 059c38c6c13d..0142251ef936 100644
--- a/libstdc++-v3/include/bits/version.def
+++ b/libstdc++-v3/include/bits/version.def
@@ -2191,7 +2191,7 @@ ftms = {
};
ftms = {
- name = ranges_to_input;
+ name = ranges_as_input;
values = {
v = 202502;
cxxmin = 26;
diff --git a/libstdc++-v3/include/bits/version.h b/libstdc++-v3/include/bits/version.h
index f806e8f3f9c0..cf78137c9d1a 100644
--- a/libstdc++-v3/include/bits/version.h
+++ b/libstdc++-v3/include/bits/version.h
@@ -2446,15 +2446,15 @@
#endif /* !defined(__cpp_lib_ranges_filter) */
#undef __glibcxx_want_ranges_filter
-#if !defined(__cpp_lib_ranges_to_input)
+#if !defined(__cpp_lib_ranges_as_input)
# if (__cplusplus > 202302L)
-# define __glibcxx_ranges_to_input 202502L
-# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_to_input)
-# define __cpp_lib_ranges_to_input 202502L
+# define __glibcxx_ranges_as_input 202502L
+# if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_as_input)
+# define __cpp_lib_ranges_as_input 202502L
# endif
# endif
-#endif /* !defined(__cpp_lib_ranges_to_input) */
-#undef __glibcxx_want_ranges_to_input
+#endif /* !defined(__cpp_lib_ranges_as_input) */
+#undef __glibcxx_want_ranges_as_input
#if !defined(__cpp_lib_to_string)
# if (__cplusplus > 202302L) && _GLIBCXX_HOSTED && (__glibcxx_to_chars)
diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges
index 0aa4191e04f6..ca91e081ad4d 100644
--- a/libstdc++-v3/include/std/ranges
+++ b/libstdc++-v3/include/std/ranges
@@ -72,7 +72,7 @@
#define __glibcxx_want_ranges_slide
#define __glibcxx_want_ranges_stride
#define __glibcxx_want_ranges_to_container
-#define __glibcxx_want_ranges_to_input
+#define __glibcxx_want_ranges_as_input
#define __glibcxx_want_ranges_zip
#include <bits/version.h>
@@ -10537,12 +10537,12 @@ namespace ranges
} // namespace ranges
#endif // __cpp_lib_ranges_cache_latest
-#if __cpp_lib_ranges_to_input // C++ >= 26
+#if __cpp_lib_ranges_as_input // C++ >= 26
namespace ranges
{
template<input_range _Vp>
requires view<_Vp>
- class to_input_view : public view_interface<to_input_view<_Vp>>
+ class as_input_view : public view_interface<as_input_view<_Vp>>
{
_Vp _M_base = _Vp();
@@ -10550,10 +10550,10 @@ namespace ranges
class _Iterator;
public:
- to_input_view() requires default_initializable<_Vp> = default;
+ as_input_view() requires default_initializable<_Vp> = default;
constexpr explicit
- to_input_view(_Vp __base)
+ as_input_view(_Vp __base)
: _M_base(std::move(__base))
{ }
@@ -10591,12 +10591,12 @@ namespace ranges
};
template<typename _Range>
- to_input_view(_Range&&) -> to_input_view<views::all_t<_Range>>;
+ as_input_view(_Range&&) -> as_input_view<views::all_t<_Range>>;
template<input_range _Vp>
requires view<_Vp>
template<bool _Const>
- class to_input_view<_Vp>::_Iterator
+ class as_input_view<_Vp>::_Iterator
{
using _Base = __maybe_const_t<_Const, _Vp>;
@@ -10607,7 +10607,7 @@ namespace ranges
: _M_current(std::move(__current))
{ }
- friend to_input_view;
+ friend as_input_view;
friend _Iterator<!_Const>;
public:
@@ -10680,13 +10680,13 @@ namespace ranges
namespace __detail
{
template<typename _Tp>
- concept __can_to_input = requires { to_input_view(std::declval<_Tp>()); };
+ concept __can_as_input = requires { as_input_view(std::declval<_Tp>()); };
}
- struct _ToInput : __adaptor::_RangeAdaptorClosure<_ToInput>
+ struct _AsInput : __adaptor::_RangeAdaptorClosure<_AsInput>
{
template<viewable_range _Range>
- requires __detail::__can_to_input<_Range>
+ requires __detail::__can_as_input<_Range>
constexpr auto
operator() [[nodiscard]] (_Range&& __r) const
{
@@ -10695,16 +10695,16 @@ namespace ranges
&& !forward_range<_Range>)
return views::all(std::forward<_Range>(__r));
else
- return to_input_view(std::forward<_Range>(__r));
+ return as_input_view(std::forward<_Range>(__r));
}
static constexpr bool _S_has_simple_call_op = true;
};
- inline constexpr _ToInput to_input;
+ inline constexpr _AsInput as_input;
}
} // namespace ranges
-#endif // __cpp_lib_ranges_to_input
+#endif // __cpp_lib_ranges_as_input
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
diff --git a/libstdc++-v3/src/c++23/std.cc.in b/libstdc++-v3/src/c++23/std.cc.in
index 3ac198716924..ad249cb3348e 100644
--- a/libstdc++-v3/src/c++23/std.cc.in
+++ b/libstdc++-v3/src/c++23/std.cc.in
@@ -2800,9 +2800,9 @@ export namespace std
using ranges::cache_latest_view;
namespace views { using views::cache_latest; }
#endif
-#if __glibcxx_ranges_to_input // C++ >= 26
- using ranges::to_input_view;
- namespace views { using views::to_input; }
+#if __glibcxx_ranges_as_input // C++ >= 26
+ using ranges::as_input_view;
+ namespace views { using views::as_input; }
#endif
#ifdef __cpp_lib_ranges_indices // C++ >= 26
namespace views { using views::indices; }
diff --git a/libstdc++-v3/testsuite/25_algorithms/contains/1.cc b/libstdc++-v3/testsuite/25_algorithms/contains/1.cc
index b44c06032e8a..aaf81f85a0a6 100644
--- a/libstdc++-v3/testsuite/25_algorithms/contains/1.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/contains/1.cc
@@ -14,17 +14,17 @@ void
test01()
{
int x[] = {1,2,3};
- using to_input = __gnu_test::test_input_range<int>;
- VERIFY( ranges::contains(to_input(x), 1) );
- VERIFY( ranges::contains(to_input(x), 2) );
- VERIFY( ranges::contains(to_input(x), 3) );
- VERIFY( !ranges::contains(to_input(x), 4) );
+ using as_input = __gnu_test::test_input_range<int>;
+ VERIFY( ranges::contains(as_input(x), 1) );
+ VERIFY( ranges::contains(as_input(x), 2) );
+ VERIFY( ranges::contains(as_input(x), 3) );
+ VERIFY( !ranges::contains(as_input(x), 4) );
VERIFY( !ranges::contains(x, x+2, 3) );
auto neg = [](int n) { return -n; };
- VERIFY( ranges::contains(to_input(x), -1, neg) );
- VERIFY( ranges::contains(to_input(x), -2, neg) );
- VERIFY( ranges::contains(to_input(x), -3, neg) );
- VERIFY( !ranges::contains(to_input(x), -4, neg) );
+ VERIFY( ranges::contains(as_input(x), -1, neg) );
+ VERIFY( ranges::contains(as_input(x), -2, neg) );
+ VERIFY( ranges::contains(as_input(x), -3, neg) );
+ VERIFY( !ranges::contains(as_input(x), -4, neg) );
VERIFY( !ranges::contains(x, x+2, -3, neg) );
}
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/to_input/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/as_input/1.cc
similarity index 78%
rename from libstdc++-v3/testsuite/std/ranges/adaptors/to_input/1.cc
rename to libstdc++-v3/testsuite/std/ranges/adaptors/as_input/1.cc
index cde368a2f64d..8bd1a82a7b7f 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/to_input/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/as_input/1.cc
@@ -2,8 +2,8 @@
#include <ranges>
-#if __cpp_lib_ranges_to_input != 202502L
-# error "Feature-test macro __cpp_lib_ranges_to_input has wrong value in <ranges>"
+#if __cpp_lib_ranges_as_input != 202502L
+# error "Feature-test macro __cpp_lib_ranges_as_input has wrong value in <ranges>"
#endif
#include <algorithm>
@@ -18,7 +18,7 @@ void
test01()
{
std::vector<int> r{1,2,3};
- auto v = r | views::to_input;
+ auto v = r | views::as_input;
using type = decltype(v);
static_assert( ranges::input_range<type> && !ranges::forward_range<type> );
@@ -45,10 +45,10 @@ test02()
int x[] = {1,2,3};
__gnu_test::test_input_range<int> rx(x);
static_assert( !ranges::common_range<decltype(rx)> );
- auto v = rx | views::to_input;
+ auto v = rx | views::as_input;
static_assert( std::same_as<decltype(v), decltype(views::all(rx))> );
- static_assert( std::same_as<decltype(x | views::to_input),
- decltype(x | views::to_input | views::to_input)> );
+ static_assert( std::same_as<decltype(x | views::as_input),
+ decltype(x | views::as_input | views::as_input)> );
}
int
More information about the Libstdc++-cvs
mailing list