diff options
author | Nikolas Klauser <nikolasklauser@berlin.de> | 2024-02-01 19:11:51 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-01 19:11:51 +0100 |
commit | ecb5a1b0e236a98f59863793b4cfef1f13ea225c (patch) | |
tree | 3271afc7b7e5f550d36ebb96e53cde25c10961da /libcxx/include/experimental | |
parent | de1ea787ed70ff376a1ff3b4262d0e25e4d135f2 (diff) | |
download | llvm-ecb5a1b0e236a98f59863793b4cfef1f13ea225c.zip llvm-ecb5a1b0e236a98f59863793b4cfef1f13ea225c.tar.gz llvm-ecb5a1b0e236a98f59863793b4cfef1f13ea225c.tar.bz2 |
[libc++][NFC] Remove <experimental/__memory> (#80194)
The header is unused now, so we can remove it.
Diffstat (limited to 'libcxx/include/experimental')
-rw-r--r-- | libcxx/include/experimental/__memory | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/libcxx/include/experimental/__memory b/libcxx/include/experimental/__memory deleted file mode 100644 index b9dbf54..0000000 --- a/libcxx/include/experimental/__memory +++ /dev/null @@ -1,94 +0,0 @@ -// -*- C++ -*- -//===----------------------------------------------------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_EXPERIMENTAL___MEMORY -#define _LIBCPP_EXPERIMENTAL___MEMORY - -#include <__memory/allocator_arg_t.h> -#include <__memory/uses_allocator.h> -#include <__type_traits/conditional.h> -#include <__type_traits/is_constructible.h> -#include <__type_traits/is_convertible.h> -#include <__type_traits/is_same.h> -#include <experimental/__config> -#include <experimental/utility> // for erased_type - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -# pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_LFTS - -template < class _Tp, class _Alloc, bool = uses_allocator<_Tp, _Alloc>::value, bool = __has_allocator_type<_Tp>::value > -struct __lfts_uses_allocator : public false_type {}; - -template <class _Tp, class _Alloc> -struct __lfts_uses_allocator<_Tp, _Alloc, false, false> : public false_type {}; - -template <class _Tp, class _Alloc, bool HasAlloc> -struct __lfts_uses_allocator<_Tp, _Alloc, true, HasAlloc> : public true_type {}; - -template <class _Tp, class _Alloc> -struct __lfts_uses_allocator<_Tp, _Alloc, false, true> - : public integral_constant<bool, - is_convertible<_Alloc, typename _Tp::allocator_type>::value || - is_same<erased_type, typename _Tp::allocator_type>::value > {}; - -template <bool _UsesAlloc, class _Tp, class _Alloc, class... _Args> -struct __lfts_uses_alloc_ctor_imp { - static const int value = 0; -}; - -template <class _Tp, class _Alloc, class... _Args> -struct __lfts_uses_alloc_ctor_imp<true, _Tp, _Alloc, _Args...> { - static const bool __ic_first = is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>::value; - - static const bool __ic_second = - __conditional_t< __ic_first, false_type, is_constructible<_Tp, _Args..., _Alloc> >::value; - - static_assert(__ic_first || __ic_second, "Request for uses allocator construction is ill-formed"); - - static const int value = __ic_first ? 1 : 2; -}; - -template <class _Tp, class _Alloc, class... _Args> -struct __lfts_uses_alloc_ctor - : integral_constant< - int, - __lfts_uses_alloc_ctor_imp< __lfts_uses_allocator<_Tp, _Alloc>::value, _Tp, _Alloc, _Args... >::value > {}; - -template <class _Tp, class _Allocator, class... _Args> -inline _LIBCPP_HIDE_FROM_ABI void -__user_alloc_construct_impl(integral_constant<int, 0>, _Tp* __storage, const _Allocator&, _Args&&... __args) { - new (__storage) _Tp(std::forward<_Args>(__args)...); -} - -// FIXME: This should have a version which takes a non-const alloc. -template <class _Tp, class _Allocator, class... _Args> -inline _LIBCPP_HIDE_FROM_ABI void -__user_alloc_construct_impl(integral_constant<int, 1>, _Tp* __storage, const _Allocator& __a, _Args&&... __args) { - new (__storage) _Tp(allocator_arg_t(), __a, std::forward<_Args>(__args)...); -} - -// FIXME: This should have a version which takes a non-const alloc. -template <class _Tp, class _Allocator, class... _Args> -inline _LIBCPP_HIDE_FROM_ABI void -__user_alloc_construct_impl(integral_constant<int, 2>, _Tp* __storage, const _Allocator& __a, _Args&&... __args) { - new (__storage) _Tp(std::forward<_Args>(__args)..., __a); -} - -template <class _Tp, class _Alloc, class... _Args> -inline _LIBCPP_HIDE_FROM_ABI void __lfts_user_alloc_construct(_Tp* __store, const _Alloc& __a, _Args&&... __args) { - ::std::experimental::fundamentals_v1::__user_alloc_construct_impl( - typename __lfts_uses_alloc_ctor<_Tp, _Alloc, _Args...>::type(), __store, __a, std::forward<_Args>(__args)...); -} - -_LIBCPP_END_NAMESPACE_LFTS - -#endif /* _LIBCPP_EXPERIMENTAL___MEMORY */ |