aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2023-11-14 15:48:03 +0000
committerJonathan Wakely <jwakely@redhat.com>2023-11-16 08:00:36 +0000
commit17aca35c0ecd23de40c1352c0a7220bad3f11cfc (patch)
tree40d5014739b1e406686c29a752da20dc0d1b148d
parentf158bd511df1f55ebbbc0df3dee52c4400291984 (diff)
downloadgcc-17aca35c0ecd23de40c1352c0a7220bad3f11cfc.zip
gcc-17aca35c0ecd23de40c1352c0a7220bad3f11cfc.tar.gz
gcc-17aca35c0ecd23de40c1352c0a7220bad3f11cfc.tar.bz2
libstdc++: Adjust feature test in <istream> and <ostream>
We don't need any library concepts to define the constraints for rvalue stream overloads, only compiler support. So change the test from using __cpp_lib_concepts to __cpp_concepts >= 201907L. libstdc++-v3/ChangeLog: * include/std/istream (__rvalue_stream_extraction_t): Test __cpp_concepts instead of __cpp_lib_concepts. * include/std/ostream (__derived_from_ios_base): Likewise. (__rvalue_stream_insertion_t): Likewise.
-rw-r--r--libstdc++-v3/include/std/istream2
-rw-r--r--libstdc++-v3/include/std/ostream2
2 files changed, 2 insertions, 2 deletions
diff --git a/libstdc++-v3/include/std/istream b/libstdc++-v3/include/std/istream
index 25d3697..c2b30b7 100644
--- a/libstdc++-v3/include/std/istream
+++ b/libstdc++-v3/include/std/istream
@@ -1069,7 +1069,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// 2328. Rvalue stream extraction should use perfect forwarding
// 1203. More useful rvalue stream insertion
-#if __cpp_lib_concepts
+#if __cpp_concepts >= 201907L
template<typename _Is, typename _Tp>
requires __derived_from_ios_base<_Is>
&& requires (_Is& __is, _Tp&& __t) { __is >> std::forward<_Tp>(__t); }
diff --git a/libstdc++-v3/include/std/ostream b/libstdc++-v3/include/std/ostream
index 5f973fa..1de1c1b 100644
--- a/libstdc++-v3/include/std/ostream
+++ b/libstdc++-v3/include/std/ostream
@@ -763,7 +763,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// _GLIBCXX_RESOLVE_LIB_DEFECTS
// 1203. More useful rvalue stream insertion
-#if __cpp_lib_concepts
+#if __cpp_concepts >= 201907L
// Use concepts if possible because they're cheaper to evaluate.
template<typename _Tp>
concept __derived_from_ios_base = is_class_v<_Tp>