diff options
Diffstat (limited to 'third_party/libcxx/include/c++/v1/__tuple')
8 files changed, 0 insertions, 464 deletions
diff --git a/third_party/libcxx/include/c++/v1/__tuple/find_index.h b/third_party/libcxx/include/c++/v1/__tuple/find_index.h deleted file mode 100644 index cc7329d..0000000 --- a/third_party/libcxx/include/c++/v1/__tuple/find_index.h +++ /dev/null @@ -1,62 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// 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___TUPLE_FIND_INDEX_H -#define _LIBCPP___TUPLE_FIND_INDEX_H - -#include <__config> -#include <__cstddef/size_t.h> -#include <__type_traits/is_same.h> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -# pragma GCC system_header -#endif - -#if _LIBCPP_STD_VER >= 14 - -_LIBCPP_BEGIN_NAMESPACE_STD - -namespace __find_detail { - -static constexpr size_t __not_found = static_cast<size_t>(-1); -static constexpr size_t __ambiguous = __not_found - 1; - -inline _LIBCPP_HIDE_FROM_ABI constexpr size_t __find_idx_return(size_t __curr_i, size_t __res, bool __matches) { - return !__matches ? __res : (__res == __not_found ? __curr_i : __ambiguous); -} - -template <size_t _Nx> -inline _LIBCPP_HIDE_FROM_ABI constexpr size_t __find_idx(size_t __i, const bool (&__matches)[_Nx]) { - return __i == _Nx - ? __not_found - : __find_detail::__find_idx_return(__i, __find_detail::__find_idx(__i + 1, __matches), __matches[__i]); -} - -template <class _T1, class... _Args> -struct __find_exactly_one_checked { - static constexpr bool __matches[sizeof...(_Args)] = {is_same<_T1, _Args>::value...}; - static constexpr size_t value = __find_detail::__find_idx(0, __matches); - static_assert(value != __not_found, "type not found in type list"); - static_assert(value != __ambiguous, "type occurs more than once in type list"); -}; - -template <class _T1> -struct __find_exactly_one_checked<_T1> { - static_assert(!is_same<_T1, _T1>::value, "type not in empty type list"); -}; - -} // namespace __find_detail - -template <typename _T1, typename... _Args> -struct __find_exactly_one_t : public __find_detail::__find_exactly_one_checked<_T1, _Args...> {}; - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_STD_VER >= 14 - -#endif // _LIBCPP___TUPLE_FIND_INDEX_H diff --git a/third_party/libcxx/include/c++/v1/__tuple/ignore.h b/third_party/libcxx/include/c++/v1/__tuple/ignore.h deleted file mode 100644 index 43cce53..0000000 --- a/third_party/libcxx/include/c++/v1/__tuple/ignore.h +++ /dev/null @@ -1,39 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// 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___TUPLE_IGNORE_H -#define _LIBCPP___TUPLE_IGNORE_H - -#include <__config> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -# pragma GCC system_header -#endif - -#ifndef _LIBCPP_CXX03_LANG - -_LIBCPP_BEGIN_NAMESPACE_STD - -struct __ignore_type { - template <class _Tp> - _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 const __ignore_type& operator=(const _Tp&) const noexcept { - return *this; - } -}; - -# if _LIBCPP_STD_VER >= 17 -inline constexpr __ignore_type ignore; -# else -constexpr __ignore_type ignore; -# endif - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_CXX03_LANG - -#endif // _LIBCPP___TUPLE_IGNORE_H diff --git a/third_party/libcxx/include/c++/v1/__tuple/sfinae_helpers.h b/third_party/libcxx/include/c++/v1/__tuple/sfinae_helpers.h deleted file mode 100644 index f81048f..0000000 --- a/third_party/libcxx/include/c++/v1/__tuple/sfinae_helpers.h +++ /dev/null @@ -1,99 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// 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___TUPLE_SFINAE_HELPERS_H -#define _LIBCPP___TUPLE_SFINAE_HELPERS_H - -#include <__config> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -# pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -#ifndef _LIBCPP_CXX03_LANG - -struct __check_tuple_constructor_fail { - static _LIBCPP_HIDE_FROM_ABI constexpr bool __enable_explicit_default() { return false; } - static _LIBCPP_HIDE_FROM_ABI constexpr bool __enable_implicit_default() { return false; } - template <class...> - static _LIBCPP_HIDE_FROM_ABI constexpr bool __enable_explicit() { - return false; - } - template <class...> - static _LIBCPP_HIDE_FROM_ABI constexpr bool __enable_implicit() { - return false; - } - template <class...> - static _LIBCPP_HIDE_FROM_ABI constexpr bool __enable_assign() { - return false; - } -}; -#endif // !defined(_LIBCPP_CXX03_LANG) - -#if _LIBCPP_STD_VER >= 17 - -template <bool _CanCopy, bool _CanMove> -struct __sfinae_ctor_base {}; -template <> -struct __sfinae_ctor_base<false, false> { - __sfinae_ctor_base() = default; - __sfinae_ctor_base(__sfinae_ctor_base const&) = delete; - __sfinae_ctor_base(__sfinae_ctor_base&&) = delete; - __sfinae_ctor_base& operator=(__sfinae_ctor_base const&) = default; - __sfinae_ctor_base& operator=(__sfinae_ctor_base&&) = default; -}; -template <> -struct __sfinae_ctor_base<true, false> { - __sfinae_ctor_base() = default; - __sfinae_ctor_base(__sfinae_ctor_base const&) = default; - __sfinae_ctor_base(__sfinae_ctor_base&&) = delete; - __sfinae_ctor_base& operator=(__sfinae_ctor_base const&) = default; - __sfinae_ctor_base& operator=(__sfinae_ctor_base&&) = default; -}; -template <> -struct __sfinae_ctor_base<false, true> { - __sfinae_ctor_base() = default; - __sfinae_ctor_base(__sfinae_ctor_base const&) = delete; - __sfinae_ctor_base(__sfinae_ctor_base&&) = default; - __sfinae_ctor_base& operator=(__sfinae_ctor_base const&) = default; - __sfinae_ctor_base& operator=(__sfinae_ctor_base&&) = default; -}; - -template <bool _CanCopy, bool _CanMove> -struct __sfinae_assign_base {}; -template <> -struct __sfinae_assign_base<false, false> { - __sfinae_assign_base() = default; - __sfinae_assign_base(__sfinae_assign_base const&) = default; - __sfinae_assign_base(__sfinae_assign_base&&) = default; - __sfinae_assign_base& operator=(__sfinae_assign_base const&) = delete; - __sfinae_assign_base& operator=(__sfinae_assign_base&&) = delete; -}; -template <> -struct __sfinae_assign_base<true, false> { - __sfinae_assign_base() = default; - __sfinae_assign_base(__sfinae_assign_base const&) = default; - __sfinae_assign_base(__sfinae_assign_base&&) = default; - __sfinae_assign_base& operator=(__sfinae_assign_base const&) = default; - __sfinae_assign_base& operator=(__sfinae_assign_base&&) = delete; -}; -template <> -struct __sfinae_assign_base<false, true> { - __sfinae_assign_base() = default; - __sfinae_assign_base(__sfinae_assign_base const&) = default; - __sfinae_assign_base(__sfinae_assign_base&&) = default; - __sfinae_assign_base& operator=(__sfinae_assign_base const&) = delete; - __sfinae_assign_base& operator=(__sfinae_assign_base&&) = default; -}; -#endif // _LIBCPP_STD_VER >= 17 - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP___TUPLE_SFINAE_HELPERS_H diff --git a/third_party/libcxx/include/c++/v1/__tuple/tuple_element.h b/third_party/libcxx/include/c++/v1/__tuple/tuple_element.h deleted file mode 100644 index 50a9807..0000000 --- a/third_party/libcxx/include/c++/v1/__tuple/tuple_element.h +++ /dev/null @@ -1,46 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// 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___TUPLE_TUPLE_ELEMENT_H -#define _LIBCPP___TUPLE_TUPLE_ELEMENT_H - -#include <__config> -#include <__cstddef/size_t.h> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -# pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -template <size_t _Ip, class _Tp> -struct tuple_element; - -template <size_t _Ip, class _Tp> -struct tuple_element<_Ip, const _Tp> { - using type _LIBCPP_NODEBUG = const typename tuple_element<_Ip, _Tp>::type; -}; - -template <size_t _Ip, class _Tp> -struct tuple_element<_Ip, volatile _Tp> { - using type _LIBCPP_NODEBUG = volatile typename tuple_element<_Ip, _Tp>::type; -}; - -template <size_t _Ip, class _Tp> -struct tuple_element<_Ip, const volatile _Tp> { - using type _LIBCPP_NODEBUG = const volatile typename tuple_element<_Ip, _Tp>::type; -}; - -# if _LIBCPP_STD_VER >= 14 -template <size_t _Ip, class... _Tp> -using tuple_element_t _LIBCPP_NODEBUG = typename tuple_element<_Ip, _Tp...>::type; -# endif - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP___TUPLE_TUPLE_ELEMENT_H diff --git a/third_party/libcxx/include/c++/v1/__tuple/tuple_like.h b/third_party/libcxx/include/c++/v1/__tuple/tuple_like.h deleted file mode 100644 index c080a3d..0000000 --- a/third_party/libcxx/include/c++/v1/__tuple/tuple_like.h +++ /dev/null @@ -1,42 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// 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___TUPLE_TUPLE_LIKE_H -#define _LIBCPP___TUPLE_TUPLE_LIKE_H - -#include <__config> -#include <__fwd/subrange.h> -#include <__tuple/tuple_like_no_subrange.h> -#include <__tuple/tuple_size.h> -#include <__type_traits/remove_cvref.h> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -# pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -#if _LIBCPP_STD_VER >= 20 - -template <class _Tp> -inline constexpr bool __is_ranges_subrange_v = false; - -template <class _Iter, class _Sent, ranges::subrange_kind _Kind> -inline constexpr bool __is_ranges_subrange_v<ranges::subrange<_Iter, _Sent, _Kind>> = true; - -template <class _Tp> -concept __tuple_like = __tuple_like_no_subrange<_Tp> || __is_ranges_subrange_v<remove_cvref_t<_Tp>>; - -// As of writing this comment every use of `pair-like` in the standard excludes `ranges::subrange`, so -// you most likely want to use `__pair_like_no_subrange` if you're looking for `pair-like`. - -#endif // _LIBCPP_STD_VER >= 20 - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP___TUPLE_TUPLE_LIKE_H diff --git a/third_party/libcxx/include/c++/v1/__tuple/tuple_like_no_subrange.h b/third_party/libcxx/include/c++/v1/__tuple/tuple_like_no_subrange.h deleted file mode 100644 index 30018d6..0000000 --- a/third_party/libcxx/include/c++/v1/__tuple/tuple_like_no_subrange.h +++ /dev/null @@ -1,61 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// 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___TUPLE_TUPLE_LIKE_NO_SUBRANGE_H -#define _LIBCPP___TUPLE_TUPLE_LIKE_NO_SUBRANGE_H - -#include <__config> -#include <__cstddef/size_t.h> -#include <__fwd/array.h> -#include <__fwd/complex.h> -#include <__fwd/pair.h> -#include <__fwd/tuple.h> -#include <__tuple/tuple_size.h> -#include <__type_traits/remove_cvref.h> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -# pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -#if _LIBCPP_STD_VER >= 20 - -template <class _Tp> -inline constexpr bool __tuple_like_no_subrange_impl = false; - -template <class... _Tp> -inline constexpr bool __tuple_like_no_subrange_impl<tuple<_Tp...>> = true; - -template <class _T1, class _T2> -inline constexpr bool __tuple_like_no_subrange_impl<pair<_T1, _T2>> = true; - -template <class _Tp, size_t _Size> -inline constexpr bool __tuple_like_no_subrange_impl<array<_Tp, _Size>> = true; - -# if _LIBCPP_STD_VER >= 26 - -template <class _Tp> -inline constexpr bool __tuple_like_no_subrange_impl<complex<_Tp>> = true; - -# endif - -template <class _Tp> -concept __tuple_like_no_subrange = __tuple_like_no_subrange_impl<remove_cvref_t<_Tp>>; - -// This is equivalent to the exposition-only type trait `pair-like`, except that it is false for specializations of -// `ranges::subrange`. This is more useful than the pair-like concept in the standard because every use of `pair-like` -// excludes `ranges::subrange`. -template <class _Tp> -concept __pair_like_no_subrange = __tuple_like_no_subrange<_Tp> && tuple_size<remove_cvref_t<_Tp>>::value == 2; - -#endif // _LIBCPP_STD_VER >= 20 - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP___TUPLE_TUPLE_LIKE_NO_SUBRANGE_H diff --git a/third_party/libcxx/include/c++/v1/__tuple/tuple_size.h b/third_party/libcxx/include/c++/v1/__tuple/tuple_size.h deleted file mode 100644 index 719edc0..0000000 --- a/third_party/libcxx/include/c++/v1/__tuple/tuple_size.h +++ /dev/null @@ -1,70 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// 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___TUPLE_TUPLE_SIZE_H -#define _LIBCPP___TUPLE_TUPLE_SIZE_H - -#include <__config> -#include <__cstddef/size_t.h> -#include <__fwd/tuple.h> -#include <__type_traits/enable_if.h> -#include <__type_traits/integral_constant.h> -#include <__type_traits/is_const.h> -#include <__type_traits/is_volatile.h> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -# pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -template <class _Tp> -struct tuple_size; - -#if !defined(_LIBCPP_CXX03_LANG) -template <class _Tp, class...> -using __enable_if_tuple_size_imp _LIBCPP_NODEBUG = _Tp; - -template <class _Tp> -struct tuple_size< - __enable_if_tuple_size_imp<const _Tp, __enable_if_t<!is_volatile<_Tp>::value>, decltype(tuple_size<_Tp>::value)>> - : public integral_constant<size_t, tuple_size<_Tp>::value> {}; - -template <class _Tp> -struct tuple_size< - __enable_if_tuple_size_imp<volatile _Tp, __enable_if_t<!is_const<_Tp>::value>, decltype(tuple_size<_Tp>::value)>> - : public integral_constant<size_t, tuple_size<_Tp>::value> {}; - -template <class _Tp> -struct tuple_size<__enable_if_tuple_size_imp<const volatile _Tp, decltype(tuple_size<_Tp>::value)>> - : public integral_constant<size_t, tuple_size<_Tp>::value> {}; - -#else -template <class _Tp> -struct tuple_size<const _Tp> : public tuple_size<_Tp> {}; -template <class _Tp> -struct tuple_size<volatile _Tp> : public tuple_size<_Tp> {}; -template <class _Tp> -struct tuple_size<const volatile _Tp> : public tuple_size<_Tp> {}; -#endif - -#ifndef _LIBCPP_CXX03_LANG - -template <class... _Tp> -struct tuple_size<tuple<_Tp...> > : public integral_constant<size_t, sizeof...(_Tp)> {}; - -# if _LIBCPP_STD_VER >= 17 -template <class _Tp> -inline constexpr size_t tuple_size_v = tuple_size<_Tp>::value; -# endif - -#endif // _LIBCPP_CXX03_LANG - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP___TUPLE_TUPLE_SIZE_H diff --git a/third_party/libcxx/include/c++/v1/__tuple/tuple_transform.h b/third_party/libcxx/include/c++/v1/__tuple/tuple_transform.h deleted file mode 100644 index 92a18e0..0000000 --- a/third_party/libcxx/include/c++/v1/__tuple/tuple_transform.h +++ /dev/null @@ -1,45 +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___TUPLE_TUPLE_TRANSFORM_H -#define _LIBCPP___TUPLE_TUPLE_TRANSFORM_H - -#include <__config> - -#include <__functional/invoke.h> -#include <__utility/forward.h> -#include <tuple> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -# pragma GCC system_header -#endif - -_LIBCPP_PUSH_MACROS -#include <__undef_macros> - -_LIBCPP_BEGIN_NAMESPACE_STD - -#if _LIBCPP_STD_VER >= 23 - -template <class _Fun, class _Tuple> -_LIBCPP_HIDE_FROM_ABI constexpr auto __tuple_transform(_Fun&& __f, _Tuple&& __tuple) { - return std::apply( - [&]<class... _Types>(_Types&&... __elements) { - return tuple<invoke_result_t<_Fun&, _Types>...>(std::invoke(__f, std::forward<_Types>(__elements))...); - }, - std::forward<_Tuple>(__tuple)); -} - -#endif // _LIBCPP_STD_VER >= 23 - -_LIBCPP_END_NAMESPACE_STD - -_LIBCPP_POP_MACROS - -#endif // _LIBCPP___TUPLE_TUPLE_TRANSFORM_H |
