diff --git a/libstdc++-v3/include/std/istream b/libstdc++-v3/include/std/istream index 11d51d3e666c8316a92d8899b2465d2ae848300e..a2b207dae78cfdd318cc563f314971e11da3b45c 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_concepts >= 201907L +#if __cpp_concepts >= 201907L && __glibcxx_type_trait_variable_templates 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 8a21758d0a337663f37adf448189f6670668a7fe..12be6c4fd17859ae27ff068efecbb873cfc4a57b 100644 --- a/libstdc++-v3/include/std/ostream +++ b/libstdc++-v3/include/std/ostream @@ -768,7 +768,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // _GLIBCXX_RESOLVE_LIB_DEFECTS // 1203. More useful rvalue stream insertion -#if __cpp_concepts >= 201907L +#if __cpp_concepts >= 201907L && __glibcxx_type_trait_variable_templates // Use concepts if possible because they're cheaper to evaluate. template<typename _Tp> concept __derived_from_ios_base = is_class_v<_Tp>