#if __cplusplus > 201703L && _GLIBCXX_USE_CXX11_ABI
# define _GLIBCXX_LVAL_REF_QUAL &
+# define _GLIBCXX_SSTREAM_ALWAYS_INLINE
#else
# define _GLIBCXX_LVAL_REF_QUAL
+// For symbols that are not exported from libstdc++.so for the COW string ABI.
+# define _GLIBCXX_SSTREAM_ALWAYS_INLINE [[__gnu__::__always_inline__]]
#endif
+
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
return __ret;
}
-#if __cplusplus > 201703L && _GLIBCXX_USE_CXX11_ABI
+#if __cplusplus > 201703L
+#if _GLIBCXX_USE_CXX11_ABI
#if __cpp_concepts
template<__allocator_like _SAlloc>
basic_string<_CharT, _Traits, _SAlloc>
_M_sync(_M_string.data(), 0, 0);
return __str;
}
+#endif // cxx11 ABI
+ _GLIBCXX_SSTREAM_ALWAYS_INLINE
basic_string_view<char_type, traits_type>
view() const noexcept
{
str() const _GLIBCXX_LVAL_REF_QUAL
{ return _M_stringbuf.str(); }
-#if __cplusplus > 201703L && _GLIBCXX_USE_CXX11_ABI
+#if __cplusplus > 201703L
+#if _GLIBCXX_USE_CXX11_ABI
#if __cpp_concepts
template<__allocator_like _SAlloc>
basic_string<_CharT, _Traits, _SAlloc>
__string_type
str() &&
{ return std::move(_M_stringbuf).str(); }
+#endif // cxx11 ABI
+ _GLIBCXX_SSTREAM_ALWAYS_INLINE
basic_string_view<char_type, traits_type>
view() const noexcept
{ return _M_stringbuf.view(); }
-#endif
+#endif // C++20
/**
* @brief Setting a new buffer.
str() const _GLIBCXX_LVAL_REF_QUAL
{ return _M_stringbuf.str(); }
-#if __cplusplus > 201703L && _GLIBCXX_USE_CXX11_ABI
+#if __cplusplus > 201703L
+#if _GLIBCXX_USE_CXX11_ABI
#if __cpp_concepts
template<__allocator_like _SAlloc>
basic_string<_CharT, _Traits, _SAlloc>
__string_type
str() &&
{ return std::move(_M_stringbuf).str(); }
+#endif // cxx11 ABI
+ _GLIBCXX_SSTREAM_ALWAYS_INLINE
basic_string_view<char_type, traits_type>
view() const noexcept
{ return _M_stringbuf.view(); }
-#endif
+#endif // C++20
/**
* @brief Setting a new buffer.
str() const _GLIBCXX_LVAL_REF_QUAL
{ return _M_stringbuf.str(); }
-#if __cplusplus > 201703L && _GLIBCXX_USE_CXX11_ABI
+#if __cplusplus > 201703L
+#if _GLIBCXX_USE_CXX11_ABI
#if __cpp_concepts
template<__allocator_like _SAlloc>
basic_string<_CharT, _Traits, _SAlloc>
__string_type
str() &&
{ return std::move(_M_stringbuf).str(); }
+#endif // cxx11 ABI
+ _GLIBCXX_SSTREAM_ALWAYS_INLINE
basic_string_view<char_type, traits_type>
view() const noexcept
{ return _M_stringbuf.view(); }
-#endif
+#endif // C++20
/**
* @brief Setting a new buffer.
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
+#undef _GLIBCXX_SSTREAM_ALWAYS_INLINE
#undef _GLIBCXX_LVAL_REF_QUAL
#include <bits/sstream.tcc>