[committed,1/2] libstdc++: Adjust feature test in <istream> and <ostream>
Checks
Commit Message
Tested x86_64-linux. Pushed to trunk.
-- >8 --
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.
---
libstdc++-v3/include/std/istream | 2 +-
libstdc++-v3/include/std/ostream | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
@@ -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); }
@@ -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>