File indexing completed on 2026-05-03 08:13:57
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef _LIBCPP___MEMORY_TEMPORARY_BUFFER_H
0011 #define _LIBCPP___MEMORY_TEMPORARY_BUFFER_H
0012
0013 #include <__config>
0014 #include <__cstddef/ptrdiff_t.h>
0015 #include <__memory/unique_temporary_buffer.h>
0016 #include <__utility/pair.h>
0017
0018 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
0019 # pragma GCC system_header
0020 #endif
0021
0022 #if _LIBCPP_STD_VER <= 17 || defined(_LIBCPP_ENABLE_CXX20_REMOVED_TEMPORARY_BUFFER)
0023
0024 _LIBCPP_BEGIN_NAMESPACE_STD
0025
0026 template <class _Tp>
0027 [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_NO_CFI _LIBCPP_DEPRECATED_IN_CXX17 pair<_Tp*, ptrdiff_t>
0028 get_temporary_buffer(ptrdiff_t __n) _NOEXCEPT {
0029 __unique_temporary_buffer<_Tp> __unique_buf = std::__allocate_unique_temporary_buffer<_Tp>(__n);
0030 pair<_Tp*, ptrdiff_t> __result(__unique_buf.get(), __unique_buf.get_deleter().__count_);
0031 __unique_buf.release();
0032 return __result;
0033 }
0034
0035 template <class _Tp>
0036 inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_DEPRECATED_IN_CXX17 void return_temporary_buffer(_Tp* __p) _NOEXCEPT {
0037 __unique_temporary_buffer<_Tp> __unique_buf(__p);
0038 (void)__unique_buf;
0039 }
0040
0041 _LIBCPP_END_NAMESPACE_STD
0042
0043 #endif
0044
0045 #endif