aboutsummaryrefslogtreecommitdiff
path: root/include/EASTL/internal/integer_sequence.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/EASTL/internal/integer_sequence.h')
-rw-r--r--include/EASTL/internal/integer_sequence.h118
1 files changed, 0 insertions, 118 deletions
diff --git a/include/EASTL/internal/integer_sequence.h b/include/EASTL/internal/integer_sequence.h
deleted file mode 100644
index ba5dd4e..0000000
--- a/include/EASTL/internal/integer_sequence.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-// Copyright (c) Electronic Arts Inc. All rights reserved.
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef EASTL_INTEGER_SEQUENCE_H
-#define EASTL_INTEGER_SEQUENCE_H
-
-#include <EABase/config/eacompiler.h>
-#include <EASTL/internal/config.h>
-#include <EASTL/type_traits.h>
-
-namespace eastl
-{
-
-#if EASTL_VARIADIC_TEMPLATES_ENABLED && !defined(EA_COMPILER_NO_TEMPLATE_ALIASES)
-
-// integer_sequence
-template <typename T, T... Ints>
-class integer_sequence
-{
-public:
- typedef T value_type;
- static_assert(is_integral<T>::value, "eastl::integer_sequence can only be instantiated with an integral type");
- static EA_CONSTEXPR size_t size() EA_NOEXCEPT { return sizeof...(Ints); }
-};
-
-template <size_t... Is>
-using index_sequence = integer_sequence<size_t, Is...>;
-
-#if (defined(EA_COMPILER_GNUC) && EA_COMPILER_VERSION >= 8001)
-
-template <typename T, T N>
-using make_integer_sequence = integer_sequence<T, __integer_pack(N)...>;
-
-#elif (defined(EA_COMPILER_CLANG) && EA_COMPILER_HAS_BUILTIN(__make_integer_seq)) || (defined(EA_COMPILER_MSVC) && (EA_COMPILER_VERSION >= 1910))
-
-template <class T, T N>
-using make_integer_sequence = __make_integer_seq<integer_sequence, T, N>;
-
-#else
-
-template <size_t N, typename IndexSeq>
-struct make_index_sequence_impl;
-
-template <size_t N, size_t... Is>
-struct make_index_sequence_impl<N, integer_sequence<size_t, Is...>>
-{
- typedef typename make_index_sequence_impl<N - 1, integer_sequence<size_t, N - 1, Is...>>::type type;
-};
-
-template <size_t... Is>
-struct make_index_sequence_impl<0, integer_sequence<size_t, Is...>>
-{
- typedef integer_sequence<size_t, Is...> type;
-};
-
-template <typename Target, typename Seq>
-struct integer_sequence_convert_impl;
-
-template <typename Target, size_t... Is>
-struct integer_sequence_convert_impl<Target, integer_sequence<size_t, Is...>>
-{
- typedef integer_sequence<Target, Is...> type;
-};
-
-template <typename T, T N>
-struct make_integer_sequence_impl
-{
- typedef typename integer_sequence_convert_impl<T, typename make_index_sequence_impl<N, integer_sequence<size_t>>::type>::type type;
-};
-
-template <typename T, T N>
-using make_integer_sequence = typename make_integer_sequence_impl<T, N>::type;
-
-#endif
-
-template <size_t N>
-using make_index_sequence = make_integer_sequence<size_t, N>;
-
-// Helper alias template that converts any type parameter pack into an index sequence of the same length
-template<typename... T>
-using index_sequence_for = make_index_sequence<sizeof...(T)>;
-
-namespace internal
-{
-
-template <typename T>
-struct integer_sequence_size_helper;
-
-template <typename T, T... Ints>
-struct integer_sequence_size_helper<eastl::integer_sequence<T, Ints...>> : public integral_constant<size_t, sizeof...(Ints)>
-{
-};
-
-template <typename T>
-struct integer_sequence_size : public integer_sequence_size_helper<eastl::remove_cv_t<T>>
-{
-};
-
-template <typename T>
-struct index_sequence_size : public integer_sequence_size_helper<eastl::remove_cv_t<T>>
-{
-};
-
-template <typename T>
-EASTL_CPP17_INLINE_VARIABLE EA_CONSTEXPR size_t integer_sequence_size_v = integer_sequence_size<T>::value;
-
-template <typename T>
-EASTL_CPP17_INLINE_VARIABLE EA_CONSTEXPR size_t index_sequence_size_v = index_sequence_size<T>::value;
-
-
-} // namespace internal
-
-#endif // EASTL_VARIADIC_TEMPLATES_ENABLED
-
-} // namespace eastl
-
-#endif // EASTL_INTEGER_SEQUENCE_H