4
4
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5
5
// See https://llvm.org/LICENSE.txt for license information.
6
6
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7
- // SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES
7
+ // SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES
8
8
//
9
9
// ===----------------------------------------------------------------------===//
10
10
@@ -185,8 +185,8 @@ _LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX14 _ForwardIterator __destroy(_Forw
185
185
186
186
_CCCL_EXEC_CHECK_DISABLE
187
187
template <class _Tp ,
188
- __enable_if_t <!is_array< _Tp>::value , int > = 0 ,
189
- __enable_if_t <!is_trivially_destructible< _Tp>::value , int > = 0 >
188
+ __enable_if_t <!_CCCL_TRAIT( is_array, _Tp) , int > = 0 ,
189
+ __enable_if_t <!_CCCL_TRAIT( is_trivially_destructible, _Tp) , int > = 0 >
190
190
_LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX14 void __destroy_at (_Tp* __loc)
191
191
{
192
192
_CCCL_ASSERT (__loc != nullptr , " null pointer given to destroy_at" );
@@ -195,22 +195,20 @@ _LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX14 void __destroy_at(_Tp* __loc)
195
195
196
196
_CCCL_EXEC_CHECK_DISABLE
197
197
template <class _Tp ,
198
- __enable_if_t <!is_array< _Tp>::value , int > = 0 ,
199
- __enable_if_t <is_trivially_destructible< _Tp>::value , int > = 0 >
198
+ __enable_if_t <!_CCCL_TRAIT( is_array, _Tp) , int > = 0 ,
199
+ __enable_if_t <_CCCL_TRAIT( is_trivially_destructible, _Tp) , int > = 0 >
200
200
_LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX14 void __destroy_at (_Tp* __loc)
201
201
{
202
202
_CCCL_ASSERT (__loc != nullptr , " null pointer given to destroy_at" );
203
203
(void ) __loc;
204
204
}
205
205
206
- #if _CCCL_STD_VER >= 2020
207
- template <class _Tp , __enable_if_t <is_array<_Tp>::value, int > = 0 >
208
- _LIBCUDACXX_HIDE_FROM_ABI constexpr void __destroy_at (_Tp* __loc)
206
+ template <class _Tp , __enable_if_t <_CCCL_TRAIT(is_array, _Tp), int > = 0 >
207
+ _LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX14 void __destroy_at (_Tp* __loc)
209
208
{
210
209
_CCCL_ASSERT (__loc != nullptr , " null pointer given to destroy_at" );
211
210
_CUDA_VSTD::__destroy (_CUDA_VSTD::begin (*__loc), _CUDA_VSTD::end (*__loc));
212
211
}
213
- #endif // _CCCL_STD_VER >= 2020
214
212
215
213
template <class _ForwardIterator >
216
214
_LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX14 _ForwardIterator
@@ -235,22 +233,18 @@ __reverse_destroy(_BidirectionalIterator __first, _BidirectionalIterator __last)
235
233
return __last;
236
234
}
237
235
238
- #if _CCCL_STD_VER >= 2017
239
-
240
- template <class _Tp , enable_if_t <!is_array_v<_Tp>, int > = 0 >
241
- _LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 void destroy_at (_Tp* __loc) noexcept
236
+ template <class _Tp , __enable_if_t <!_CCCL_TRAIT(is_array, _Tp), int > = 0 >
237
+ _LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 void destroy_at (_Tp* __loc)
242
238
{
243
239
_CCCL_ASSERT (__loc != nullptr , " null pointer given to destroy_at" );
244
240
__loc->~_Tp ();
245
241
}
246
242
247
- # if _CCCL_STD_VER >= 2020
248
- template <class _Tp , enable_if_t <is_array_v<_Tp>, int > = 0 >
249
- _LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 void destroy_at (_Tp* __loc) noexcept
243
+ template <class _Tp , __enable_if_t <_CCCL_TRAIT(is_array, _Tp), int > = 0 >
244
+ _LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 void destroy_at (_Tp* __loc)
250
245
{
251
246
_CUDA_VSTD::__destroy_at (__loc);
252
247
}
253
- # endif // _CCCL_STD_VER >= 2020
254
248
255
249
template <class _ForwardIterator >
256
250
_LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 void destroy (_ForwardIterator __first, _ForwardIterator __last) noexcept
@@ -268,8 +262,6 @@ _LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX20 _ForwardIterator destroy_n(_Forw
268
262
return __first;
269
263
}
270
264
271
- #endif // _CCCL_STD_VER >= 2017
272
-
273
265
_LIBCUDACXX_END_NAMESPACE_STD
274
266
275
267
#endif // _LIBCUDACXX___MEMORY_CONSTRUCT_AT_H
0 commit comments