|
22 | 22 | _LIBCPP_BEGIN_NAMESPACE_STD
|
23 | 23 |
|
24 | 24 | template <class _Tp>
|
25 |
| -_LIBCPP_NODISCARD _LIBCPP_HIDE_FROM_ABI _LIBCPP_NO_CFI _LIBCPP_DEPRECATED_IN_CXX17 pair<_Tp*, ptrdiff_t> |
26 |
| -get_temporary_buffer(ptrdiff_t __n) _NOEXCEPT { |
| 25 | +_LIBCPP_NODISCARD _LIBCPP_HIDE_FROM_ABI _LIBCPP_NO_CFI pair<_Tp*, ptrdiff_t> |
| 26 | +__get_temporary_buffer(ptrdiff_t __n) _NOEXCEPT { |
27 | 27 | pair<_Tp*, ptrdiff_t> __r(0, 0);
|
28 | 28 | const ptrdiff_t __m =
|
29 | 29 | (~ptrdiff_t(0) ^ ptrdiff_t(ptrdiff_t(1) << (sizeof(ptrdiff_t) * __CHAR_BIT__ - 1))) / sizeof(_Tp);
|
@@ -56,20 +56,28 @@ get_temporary_buffer(ptrdiff_t __n) _NOEXCEPT {
|
56 | 56 | return __r;
|
57 | 57 | }
|
58 | 58 |
|
59 |
| -template <class _Tp> |
60 |
| -inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_DEPRECATED_IN_CXX17 void return_temporary_buffer(_Tp* __p) _NOEXCEPT { |
61 |
| - std::__libcpp_deallocate_unsized((void*)__p, _LIBCPP_ALIGNOF(_Tp)); |
62 |
| -} |
63 |
| - |
64 | 59 | struct __return_temporary_buffer {
|
65 |
| - _LIBCPP_SUPPRESS_DEPRECATED_PUSH |
66 | 60 | template <class _Tp>
|
67 | 61 | _LIBCPP_HIDE_FROM_ABI void operator()(_Tp* __p) const {
|
68 |
| - std::return_temporary_buffer(__p); |
| 62 | + std::__libcpp_deallocate_unsized((void*)__p, _LIBCPP_ALIGNOF(_Tp)); |
69 | 63 | }
|
70 |
| - _LIBCPP_SUPPRESS_DEPRECATED_POP |
71 | 64 | };
|
72 | 65 |
|
| 66 | +#if _LIBCPP_STD_VER <= 17 || defined(_LIBCPP_ENABLE_CXX20_REMOVED_TEMPORARY_BUFFER) |
| 67 | + |
| 68 | +template <class _Tp> |
| 69 | +_LIBCPP_NODISCARD _LIBCPP_HIDE_FROM_ABI _LIBCPP_NO_CFI _LIBCPP_DEPRECATED_IN_CXX17 pair<_Tp*, ptrdiff_t> |
| 70 | +get_temporary_buffer(ptrdiff_t __n) _NOEXCEPT { |
| 71 | + return std::__get_temporary_buffer<_Tp>(__n); |
| 72 | +} |
| 73 | + |
| 74 | +template <class _Tp> |
| 75 | +inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_DEPRECATED_IN_CXX17 void return_temporary_buffer(_Tp* __p) _NOEXCEPT { |
| 76 | + std::__libcpp_deallocate_unsized((void*)__p, _LIBCPP_ALIGNOF(_Tp)); |
| 77 | +} |
| 78 | + |
| 79 | +#endif // _LIBCPP_STD_VER <= 17 || defined(_LIBCPP_ENABLE_CXX20_REMOVED_TEMPORARY_BUFFER) |
| 80 | + |
73 | 81 | _LIBCPP_END_NAMESPACE_STD
|
74 | 82 |
|
75 | 83 | #endif // _LIBCPP___MEMORY_TEMPORARY_BUFFER_H
|
0 commit comments