mirror of
https://github.com/bolero-MURAKAMI/Sprout.git
synced 2025-07-16 15:14:13 +00:00
sprout/variant.hpp 追加
sprout/type.hpp 追加
This commit is contained in:
parent
488df1e685
commit
b6bf03c4ed
30 changed files with 905 additions and 102 deletions
|
@ -4,8 +4,9 @@
|
|||
#include <cstddef>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/index_tuple.hpp>
|
||||
#include <sprout/tuple/traits.hpp>
|
||||
#include <sprout/tuple/tuple.hpp>
|
||||
#include <sprout/tuple/functions.hpp>
|
||||
#include <sprout/type/operation/push_front.hpp>
|
||||
|
||||
namespace sprout {
|
||||
namespace tuples {
|
||||
|
@ -14,24 +15,9 @@ namespace sprout {
|
|||
// push_front
|
||||
//
|
||||
template<typename Tuple, typename T>
|
||||
struct push_front {
|
||||
private:
|
||||
template<typename IndexTuple>
|
||||
struct apply_impl;
|
||||
template<std::ptrdiff_t... Indexes>
|
||||
struct apply_impl<sprout::index_tuple<Indexes...>>
|
||||
: public sprout::tuples::rebind_types<
|
||||
Tuple
|
||||
>::template apply<
|
||||
T,
|
||||
typename sprout::tuples::tuple_element<Indexes, Tuple>::type...
|
||||
>
|
||||
{};
|
||||
public:
|
||||
typedef typename apply_impl<
|
||||
typename sprout::index_range<0, sprout::tuples::tuple_size<Tuple>::value>::type
|
||||
>::type type;
|
||||
};
|
||||
struct push_front
|
||||
: public sprout::types::push_front<Tuple, T>
|
||||
{};
|
||||
} // namespace result_of
|
||||
|
||||
namespace detail {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue