diff options
Diffstat (limited to 'lib/libcxx/include/experimental/__memory')
-rw-r--r-- | lib/libcxx/include/experimental/__memory | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/lib/libcxx/include/experimental/__memory b/lib/libcxx/include/experimental/__memory deleted file mode 100644 index 229fea605bf..00000000000 --- a/lib/libcxx/include/experimental/__memory +++ /dev/null @@ -1,90 +0,0 @@ -// -*- C++ -*- -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_EXPERIMENTAL___MEMORY -#define _LIBCPP_EXPERIMENTAL___MEMORY - -#include <experimental/__config> -#include <experimental/utility> // for erased_type -#include <__functional_base> -#include <type_traits> - -_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< - __ic_first, - false_type, - is_constructible<_Tp, _Args..., _Alloc> - >::type::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 _Alloc, class ..._Args> -inline _LIBCPP_INLINE_VISIBILITY -void __lfts_user_alloc_construct( - _Tp * __store, const _Alloc & __a, _Args &&... __args) -{ - _VSTD::__user_alloc_construct_impl( - typename __lfts_uses_alloc_ctor<_Tp, _Alloc, _Args...>::type() - , __store, __a, _VSTD::forward<_Args>(__args)... - ); -} - -_LIBCPP_END_NAMESPACE_LFTS - -#endif /* _LIBCPP_EXPERIMENTAL___MEMORY */ |