mirror of
https://github.com/bolero-MURAKAMI/Sprout.git
synced 2024-11-14 10:39:05 +00:00
add index_tuple/*
This commit is contained in:
parent
c6bd230ee4
commit
84956034ad
10 changed files with 259 additions and 205 deletions
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
#include <sprout/config.hpp>
|
#include <sprout/config.hpp>
|
||||||
#include <sprout/index_tuple.hpp>
|
#include <sprout/index_tuple.hpp>
|
||||||
|
#include <sprout/index_tuple/detail/make_indexes_helper.hpp>
|
||||||
#include <sprout/container/container_construct_traits.hpp>
|
#include <sprout/container/container_construct_traits.hpp>
|
||||||
|
|
||||||
namespace sprout {
|
namespace sprout {
|
||||||
|
@ -12,7 +13,7 @@ namespace sprout {
|
||||||
//
|
//
|
||||||
template<typename Container>
|
template<typename Container>
|
||||||
struct container_indexes
|
struct container_indexes
|
||||||
: public sprout::detail::make_index_tuple_helper<
|
: public sprout::detail::make_indexes_helper<
|
||||||
sprout::index_range<0, sprout::container_traits<Container>::static_size>
|
sprout::index_range<0, sprout::container_traits<Container>::static_size>
|
||||||
>
|
>
|
||||||
{};
|
{};
|
||||||
|
|
|
@ -1,202 +1,11 @@
|
||||||
#ifndef SPROUT_INDEX_TUPLE_HPP
|
#ifndef SPROUT_INDEX_TUPLE_HPP
|
||||||
#define SPROUT_INDEX_TUPLE_HPP
|
#define SPROUT_INDEX_TUPLE_HPP
|
||||||
|
|
||||||
#include <cstddef>
|
|
||||||
#include <type_traits>
|
|
||||||
#include <sprout/config.hpp>
|
#include <sprout/config.hpp>
|
||||||
|
#include <sprout/index_tuple/index_tuple.hpp>
|
||||||
namespace sprout {
|
#include <sprout/index_tuple/make_indexes.hpp>
|
||||||
//
|
#include <sprout/index_tuple/index_range.hpp>
|
||||||
// index_t
|
#include <sprout/index_tuple/index_n.hpp>
|
||||||
//
|
#include <sprout/index_tuple/pack_indexes.hpp>
|
||||||
typedef std::ptrdiff_t index_t;
|
|
||||||
|
|
||||||
//
|
|
||||||
// index_tuple
|
|
||||||
//
|
|
||||||
template<sprout::index_t... Indexes>
|
|
||||||
struct index_tuple {
|
|
||||||
public:
|
|
||||||
typedef index_tuple type;
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
|
||||||
// make_indexes
|
|
||||||
//
|
|
||||||
template<typename IndexTupleType>
|
|
||||||
inline SPROUT_CONSTEXPR typename IndexTupleType::type make_indexes() {
|
|
||||||
return typename IndexTupleType::type();
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace detail {
|
|
||||||
template<typename IndexTupleType>
|
|
||||||
struct make_index_tuple_helper {
|
|
||||||
public:
|
|
||||||
typedef typename IndexTupleType::type type;
|
|
||||||
public:
|
|
||||||
static SPROUT_CONSTEXPR type make() {
|
|
||||||
return type();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
} // namespace detail
|
|
||||||
|
|
||||||
//
|
|
||||||
// index_range
|
|
||||||
//
|
|
||||||
namespace detail {
|
|
||||||
template<typename IndexTuple, sprout::index_t Next>
|
|
||||||
struct index_range_next;
|
|
||||||
template<sprout::index_t... Indexes, sprout::index_t Next>
|
|
||||||
struct index_range_next<sprout::index_tuple<Indexes...>, Next> {
|
|
||||||
public:
|
|
||||||
typedef sprout::index_tuple<Indexes..., (Indexes + Next)...> type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<typename IndexTuple, sprout::index_t Next, sprout::index_t Tail>
|
|
||||||
struct index_range_next2;
|
|
||||||
template<sprout::index_t... Indexes, sprout::index_t Next, sprout::index_t Tail>
|
|
||||||
struct index_range_next2<sprout::index_tuple<Indexes...>, Next, Tail> {
|
|
||||||
public:
|
|
||||||
typedef sprout::index_tuple<Indexes..., (Indexes + Next)..., Tail> type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<sprout::index_t First, sprout::index_t Step, std::size_t N, typename Enable = void>
|
|
||||||
struct index_range_impl;
|
|
||||||
template<sprout::index_t First, sprout::index_t Step, std::size_t N>
|
|
||||||
struct index_range_impl<
|
|
||||||
First,
|
|
||||||
Step,
|
|
||||||
N,
|
|
||||||
typename std::enable_if<(N == 0)>::type
|
|
||||||
> {
|
|
||||||
public:
|
|
||||||
typedef sprout::index_tuple<> type;
|
|
||||||
};
|
|
||||||
template<sprout::index_t First, sprout::index_t Step, std::size_t N>
|
|
||||||
struct index_range_impl<
|
|
||||||
First,
|
|
||||||
Step,
|
|
||||||
N,
|
|
||||||
typename std::enable_if<(N == 1)>::type
|
|
||||||
> {
|
|
||||||
public:
|
|
||||||
typedef sprout::index_tuple<First> type;
|
|
||||||
};
|
|
||||||
template<sprout::index_t First, sprout::index_t Step, std::size_t N>
|
|
||||||
struct index_range_impl<
|
|
||||||
First,
|
|
||||||
Step,
|
|
||||||
N,
|
|
||||||
typename std::enable_if<(N > 1 && N % 2 == 0)>::type
|
|
||||||
>
|
|
||||||
: public sprout::detail::index_range_next<
|
|
||||||
typename sprout::detail::index_range_impl<First, Step, N / 2>::type,
|
|
||||||
First + N / 2 * Step
|
|
||||||
>
|
|
||||||
{};
|
|
||||||
template<sprout::index_t First, sprout::index_t Step, std::size_t N>
|
|
||||||
struct index_range_impl<
|
|
||||||
First,
|
|
||||||
Step,
|
|
||||||
N,
|
|
||||||
typename std::enable_if<(N > 1 && N % 2 == 1)>::type
|
|
||||||
>
|
|
||||||
: public sprout::detail::index_range_next2<
|
|
||||||
typename sprout::detail::index_range_impl<First, Step, N / 2>::type,
|
|
||||||
First + N / 2 * Step,
|
|
||||||
First + (N - 1) * Step
|
|
||||||
>
|
|
||||||
{};
|
|
||||||
} // namespace detail
|
|
||||||
template<sprout::index_t First, sprout::index_t Last, sprout::index_t Step = 1>
|
|
||||||
struct index_range
|
|
||||||
: public sprout::detail::make_index_tuple_helper<
|
|
||||||
sprout::detail::index_range_impl<
|
|
||||||
First,
|
|
||||||
Step,
|
|
||||||
((Last - First) + (Step - 1)) / Step
|
|
||||||
>
|
|
||||||
>
|
|
||||||
{};
|
|
||||||
|
|
||||||
//
|
|
||||||
// index_n
|
|
||||||
//
|
|
||||||
namespace detail {
|
|
||||||
template<typename IndexTuple>
|
|
||||||
struct index_n_next;
|
|
||||||
template<sprout::index_t... Indexes>
|
|
||||||
struct index_n_next<sprout::index_tuple<Indexes...>> {
|
|
||||||
public:
|
|
||||||
typedef sprout::index_tuple<Indexes..., Indexes...> type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<typename IndexTuple, sprout::index_t Tail>
|
|
||||||
struct index_n_next2;
|
|
||||||
template<sprout::index_t... Indexes, sprout::index_t Tail>
|
|
||||||
struct index_n_next2<sprout::index_tuple<Indexes...>, Tail> {
|
|
||||||
public:
|
|
||||||
typedef sprout::index_tuple<Indexes..., Indexes..., Tail> type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<sprout::index_t I, std::size_t N, typename Enable = void>
|
|
||||||
struct index_n_impl;
|
|
||||||
template<sprout::index_t I, std::size_t N>
|
|
||||||
struct index_n_impl<
|
|
||||||
I,
|
|
||||||
N,
|
|
||||||
typename std::enable_if<(N == 0)>::type
|
|
||||||
> {
|
|
||||||
public:
|
|
||||||
typedef sprout::index_tuple<> type;
|
|
||||||
};
|
|
||||||
template<sprout::index_t I, std::size_t N>
|
|
||||||
struct index_n_impl<
|
|
||||||
I,
|
|
||||||
N,
|
|
||||||
typename std::enable_if<(N == 1)>::type
|
|
||||||
> {
|
|
||||||
public:
|
|
||||||
typedef sprout::index_tuple<I> type;
|
|
||||||
};
|
|
||||||
template<sprout::index_t I, std::size_t N>
|
|
||||||
struct index_n_impl<
|
|
||||||
I,
|
|
||||||
N,
|
|
||||||
typename std::enable_if<(N > 1 && N % 2 == 0)>::type
|
|
||||||
>
|
|
||||||
: public sprout::detail::index_n_next<
|
|
||||||
typename sprout::detail::index_n_impl<I, N / 2>::type
|
|
||||||
>
|
|
||||||
{};
|
|
||||||
template<sprout::index_t I, std::size_t N>
|
|
||||||
struct index_n_impl<
|
|
||||||
I,
|
|
||||||
N,
|
|
||||||
typename std::enable_if<(N > 1 && N % 2 == 1)>::type
|
|
||||||
>
|
|
||||||
: public sprout::detail::index_n_next2<
|
|
||||||
typename sprout::detail::index_n_impl<I, N / 2>::type,
|
|
||||||
I
|
|
||||||
>
|
|
||||||
{};
|
|
||||||
} // namespace detail
|
|
||||||
template<sprout::index_t I, std::size_t N>
|
|
||||||
struct index_n
|
|
||||||
: public sprout::detail::make_index_tuple_helper<
|
|
||||||
sprout::detail::index_n_impl<I, N>
|
|
||||||
>
|
|
||||||
{};
|
|
||||||
|
|
||||||
//
|
|
||||||
// pack_indexes
|
|
||||||
//
|
|
||||||
template<typename... Args>
|
|
||||||
struct pack_indexes
|
|
||||||
: public sprout::detail::make_index_tuple_helper<
|
|
||||||
sprout::index_range<0, sizeof...(Args)>
|
|
||||||
>
|
|
||||||
{};
|
|
||||||
} // namespace sprout
|
|
||||||
|
|
||||||
#endif // #ifndef SPROUT_INDEX_TUPLE_HPP
|
#endif // #ifndef SPROUT_INDEX_TUPLE_HPP
|
||||||
|
|
20
sprout/index_tuple/detail/make_indexes_helper.hpp
Normal file
20
sprout/index_tuple/detail/make_indexes_helper.hpp
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
#ifndef SPROUT_INDEX_TUPLE_DETAIL_MAKE_INDEXES_HELPER_HPP
|
||||||
|
#define SPROUT_INDEX_TUPLE_DETAIL_MAKE_INDEXES_HELPER_HPP
|
||||||
|
|
||||||
|
#include <sprout/config.hpp>
|
||||||
|
|
||||||
|
namespace sprout {
|
||||||
|
namespace detail {
|
||||||
|
template<typename IndexTupleType>
|
||||||
|
struct make_indexes_helper {
|
||||||
|
public:
|
||||||
|
typedef typename IndexTupleType::type type;
|
||||||
|
public:
|
||||||
|
static SPROUT_CONSTEXPR type make() {
|
||||||
|
return type();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
} // namespace detail
|
||||||
|
} // namespace sprout
|
||||||
|
|
||||||
|
#endif // #ifndef SPROUT_INDEX_TUPLE_DETAIL_MAKE_INDEXES_HELPER_HPP
|
81
sprout/index_tuple/index_n.hpp
Normal file
81
sprout/index_tuple/index_n.hpp
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
#ifndef SPROUT_INDEX_TUPLE_INDEX_N_HPP
|
||||||
|
#define SPROUT_INDEX_TUPLE_INDEX_N_HPP
|
||||||
|
|
||||||
|
#include <cstddef>
|
||||||
|
#include <type_traits>
|
||||||
|
#include <sprout/config.hpp>
|
||||||
|
#include <sprout/index_tuple/index_tuple.hpp>
|
||||||
|
#include <sprout/index_tuple/detail/make_indexes_helper.hpp>
|
||||||
|
|
||||||
|
namespace sprout {
|
||||||
|
//
|
||||||
|
// index_n
|
||||||
|
//
|
||||||
|
namespace detail {
|
||||||
|
template<typename IndexTuple>
|
||||||
|
struct index_n_next;
|
||||||
|
template<sprout::index_t... Indexes>
|
||||||
|
struct index_n_next<sprout::index_tuple<Indexes...>> {
|
||||||
|
public:
|
||||||
|
typedef sprout::index_tuple<Indexes..., Indexes...> type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<typename IndexTuple, sprout::index_t Tail>
|
||||||
|
struct index_n_next2;
|
||||||
|
template<sprout::index_t... Indexes, sprout::index_t Tail>
|
||||||
|
struct index_n_next2<sprout::index_tuple<Indexes...>, Tail> {
|
||||||
|
public:
|
||||||
|
typedef sprout::index_tuple<Indexes..., Indexes..., Tail> type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<sprout::index_t I, std::size_t N, typename Enable = void>
|
||||||
|
struct index_n_impl;
|
||||||
|
template<sprout::index_t I, std::size_t N>
|
||||||
|
struct index_n_impl<
|
||||||
|
I,
|
||||||
|
N,
|
||||||
|
typename std::enable_if<(N == 0)>::type
|
||||||
|
> {
|
||||||
|
public:
|
||||||
|
typedef sprout::index_tuple<> type;
|
||||||
|
};
|
||||||
|
template<sprout::index_t I, std::size_t N>
|
||||||
|
struct index_n_impl<
|
||||||
|
I,
|
||||||
|
N,
|
||||||
|
typename std::enable_if<(N == 1)>::type
|
||||||
|
> {
|
||||||
|
public:
|
||||||
|
typedef sprout::index_tuple<I> type;
|
||||||
|
};
|
||||||
|
template<sprout::index_t I, std::size_t N>
|
||||||
|
struct index_n_impl<
|
||||||
|
I,
|
||||||
|
N,
|
||||||
|
typename std::enable_if<(N > 1 && N % 2 == 0)>::type
|
||||||
|
>
|
||||||
|
: public sprout::detail::index_n_next<
|
||||||
|
typename sprout::detail::index_n_impl<I, N / 2>::type
|
||||||
|
>
|
||||||
|
{};
|
||||||
|
template<sprout::index_t I, std::size_t N>
|
||||||
|
struct index_n_impl<
|
||||||
|
I,
|
||||||
|
N,
|
||||||
|
typename std::enable_if<(N > 1 && N % 2 == 1)>::type
|
||||||
|
>
|
||||||
|
: public sprout::detail::index_n_next2<
|
||||||
|
typename sprout::detail::index_n_impl<I, N / 2>::type,
|
||||||
|
I
|
||||||
|
>
|
||||||
|
{};
|
||||||
|
} // namespace detail
|
||||||
|
template<sprout::index_t I, std::size_t N>
|
||||||
|
struct index_n
|
||||||
|
: public sprout::detail::make_indexes_helper<
|
||||||
|
sprout::detail::index_n_impl<I, N>
|
||||||
|
>
|
||||||
|
{};
|
||||||
|
} // namespace sprout
|
||||||
|
|
||||||
|
#endif // #ifndef SPROUT_INDEX_TUPLE_INDEX_N_HPP
|
91
sprout/index_tuple/index_range.hpp
Normal file
91
sprout/index_tuple/index_range.hpp
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
#ifndef SPROUT_INDEX_TUPLE_INDEX_RANGE_HPP
|
||||||
|
#define SPROUT_INDEX_TUPLE_INDEX_RANGE_HPP
|
||||||
|
|
||||||
|
#include <cstddef>
|
||||||
|
#include <type_traits>
|
||||||
|
#include <sprout/config.hpp>
|
||||||
|
#include <sprout/index_tuple/index_tuple.hpp>
|
||||||
|
#include <sprout/index_tuple/detail/make_indexes_helper.hpp>
|
||||||
|
|
||||||
|
namespace sprout {
|
||||||
|
//
|
||||||
|
// index_range
|
||||||
|
//
|
||||||
|
namespace detail {
|
||||||
|
template<typename IndexTuple, sprout::index_t Next>
|
||||||
|
struct index_range_next;
|
||||||
|
template<sprout::index_t... Indexes, sprout::index_t Next>
|
||||||
|
struct index_range_next<sprout::index_tuple<Indexes...>, Next> {
|
||||||
|
public:
|
||||||
|
typedef sprout::index_tuple<Indexes..., (Indexes + Next)...> type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<typename IndexTuple, sprout::index_t Next, sprout::index_t Tail>
|
||||||
|
struct index_range_next2;
|
||||||
|
template<sprout::index_t... Indexes, sprout::index_t Next, sprout::index_t Tail>
|
||||||
|
struct index_range_next2<sprout::index_tuple<Indexes...>, Next, Tail> {
|
||||||
|
public:
|
||||||
|
typedef sprout::index_tuple<Indexes..., (Indexes + Next)..., Tail> type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<sprout::index_t First, sprout::index_t Step, std::size_t N, typename Enable = void>
|
||||||
|
struct index_range_impl;
|
||||||
|
template<sprout::index_t First, sprout::index_t Step, std::size_t N>
|
||||||
|
struct index_range_impl<
|
||||||
|
First,
|
||||||
|
Step,
|
||||||
|
N,
|
||||||
|
typename std::enable_if<(N == 0)>::type
|
||||||
|
> {
|
||||||
|
public:
|
||||||
|
typedef sprout::index_tuple<> type;
|
||||||
|
};
|
||||||
|
template<sprout::index_t First, sprout::index_t Step, std::size_t N>
|
||||||
|
struct index_range_impl<
|
||||||
|
First,
|
||||||
|
Step,
|
||||||
|
N,
|
||||||
|
typename std::enable_if<(N == 1)>::type
|
||||||
|
> {
|
||||||
|
public:
|
||||||
|
typedef sprout::index_tuple<First> type;
|
||||||
|
};
|
||||||
|
template<sprout::index_t First, sprout::index_t Step, std::size_t N>
|
||||||
|
struct index_range_impl<
|
||||||
|
First,
|
||||||
|
Step,
|
||||||
|
N,
|
||||||
|
typename std::enable_if<(N > 1 && N % 2 == 0)>::type
|
||||||
|
>
|
||||||
|
: public sprout::detail::index_range_next<
|
||||||
|
typename sprout::detail::index_range_impl<First, Step, N / 2>::type,
|
||||||
|
First + N / 2 * Step
|
||||||
|
>
|
||||||
|
{};
|
||||||
|
template<sprout::index_t First, sprout::index_t Step, std::size_t N>
|
||||||
|
struct index_range_impl<
|
||||||
|
First,
|
||||||
|
Step,
|
||||||
|
N,
|
||||||
|
typename std::enable_if<(N > 1 && N % 2 == 1)>::type
|
||||||
|
>
|
||||||
|
: public sprout::detail::index_range_next2<
|
||||||
|
typename sprout::detail::index_range_impl<First, Step, N / 2>::type,
|
||||||
|
First + N / 2 * Step,
|
||||||
|
First + (N - 1) * Step
|
||||||
|
>
|
||||||
|
{};
|
||||||
|
} // namespace detail
|
||||||
|
template<sprout::index_t First, sprout::index_t Last, sprout::index_t Step = 1>
|
||||||
|
struct index_range
|
||||||
|
: public sprout::detail::make_indexes_helper<
|
||||||
|
sprout::detail::index_range_impl<
|
||||||
|
First,
|
||||||
|
Step,
|
||||||
|
((Last - First) + (Step - 1)) / Step
|
||||||
|
>
|
||||||
|
>
|
||||||
|
{};
|
||||||
|
} // namespace sprout
|
||||||
|
|
||||||
|
#endif // #ifndef SPROUT_INDEX_TUPLE_INDEX_RANGE_HPP
|
23
sprout/index_tuple/index_tuple.hpp
Normal file
23
sprout/index_tuple/index_tuple.hpp
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
#ifndef SPROUT_INDEX_TUPLE_INDEX_TUPLE_HPP
|
||||||
|
#define SPROUT_INDEX_TUPLE_INDEX_TUPLE_HPP
|
||||||
|
|
||||||
|
#include <cstddef>
|
||||||
|
#include <sprout/config.hpp>
|
||||||
|
|
||||||
|
namespace sprout {
|
||||||
|
//
|
||||||
|
// index_t
|
||||||
|
//
|
||||||
|
typedef std::ptrdiff_t index_t;
|
||||||
|
|
||||||
|
//
|
||||||
|
// index_tuple
|
||||||
|
//
|
||||||
|
template<sprout::index_t... Indexes>
|
||||||
|
struct index_tuple {
|
||||||
|
public:
|
||||||
|
typedef index_tuple type;
|
||||||
|
};
|
||||||
|
} // namespace sprout
|
||||||
|
|
||||||
|
#endif // #ifndef SPROUT_INDEX_TUPLE_INDEX_TUPLE_HPP
|
16
sprout/index_tuple/make_indexes.hpp
Normal file
16
sprout/index_tuple/make_indexes.hpp
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#ifndef SPROUT_INDEX_TUPLE_MAKE_INDEXES_HPP
|
||||||
|
#define SPROUT_INDEX_TUPLE_MAKE_INDEXES_HPP
|
||||||
|
|
||||||
|
#include <sprout/config.hpp>
|
||||||
|
|
||||||
|
namespace sprout {
|
||||||
|
//
|
||||||
|
// make_indexes
|
||||||
|
//
|
||||||
|
template<typename IndexTupleType>
|
||||||
|
inline SPROUT_CONSTEXPR typename IndexTupleType::type make_indexes() {
|
||||||
|
return typename IndexTupleType::type();
|
||||||
|
}
|
||||||
|
} // namespace sprout
|
||||||
|
|
||||||
|
#endif // #ifndef SPROUT_INDEX_TUPLE_MAKE_INDEXES_HPP
|
19
sprout/index_tuple/pack_indexes.hpp
Normal file
19
sprout/index_tuple/pack_indexes.hpp
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
#ifndef SPROUT_INDEX_TUPLE_PACK_INDEXES_HPP
|
||||||
|
#define SPROUT_INDEX_TUPLE_PACK_INDEXES_HPP
|
||||||
|
|
||||||
|
#include <sprout/config.hpp>
|
||||||
|
#include <sprout/index_tuple/detail/make_indexes_helper.hpp>
|
||||||
|
|
||||||
|
namespace sprout {
|
||||||
|
//
|
||||||
|
// pack_indexes
|
||||||
|
//
|
||||||
|
template<typename... Args>
|
||||||
|
struct pack_indexes
|
||||||
|
: public sprout::detail::make_indexes_helper<
|
||||||
|
sprout::index_range<0, sizeof...(Args)>
|
||||||
|
>
|
||||||
|
{};
|
||||||
|
} // namespace sprout
|
||||||
|
|
||||||
|
#endif // #ifndef SPROUT_INDEX_TUPLE_PACK_INDEXES_HPP
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
#include <sprout/config.hpp>
|
#include <sprout/config.hpp>
|
||||||
#include <sprout/index_tuple.hpp>
|
#include <sprout/index_tuple.hpp>
|
||||||
|
#include <sprout/index_tuple/detail/make_indexes_helper.hpp>
|
||||||
#include <sprout/tuple/tuple.hpp>
|
#include <sprout/tuple/tuple.hpp>
|
||||||
|
|
||||||
namespace sprout {
|
namespace sprout {
|
||||||
|
@ -12,7 +13,7 @@ namespace sprout {
|
||||||
//
|
//
|
||||||
template<typename Tuple>
|
template<typename Tuple>
|
||||||
struct tuple_indexes
|
struct tuple_indexes
|
||||||
: public sprout::detail::make_index_tuple_helper<
|
: public sprout::detail::make_indexes_helper<
|
||||||
sprout::index_range<0, sprout::tuples::tuple_size<Tuple>::value>
|
sprout::index_range<0, sprout::tuples::tuple_size<Tuple>::value>
|
||||||
>
|
>
|
||||||
{};
|
{};
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
|
|
||||||
//#define SPROUT_CONFIG_DISABLE_CONSTEXPR
|
|
||||||
//#define SPROUT_CONFIG_DISABLE_NOEXCEPT
|
|
||||||
//#define SPROUT_CONFIG_DISABLE_TEMPLATE_ALIASES
|
|
||||||
//#define SPROUT_CONFIG_USE_SSCRISK_CEL
|
|
||||||
//#define SPROUT_CONFIG_DISABLE_SUPPORT_TEMPORARY_CONTAINER_ITERATION
|
|
||||||
//#define SPROUT_CONFIG_SUPPORT_TEMPORARY_CONTAINER_ITERATION
|
|
Loading…
Reference in a new issue