diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2023-11-14 15:48:03 +0000 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2023-11-16 08:00:36 +0000 |
commit | 17aca35c0ecd23de40c1352c0a7220bad3f11cfc (patch) | |
tree | 40d5014739b1e406686c29a752da20dc0d1b148d | |
parent | f158bd511df1f55ebbbc0df3dee52c4400291984 (diff) | |
download | gcc-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/istream | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/std/ostream | 2 |
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> |