mirror of
https://github.com/bolero-MURAKAMI/Sprout
synced 2025-08-03 12:49:50 +00:00
fix index_range implementation
This commit is contained in:
parent
331aaa3559
commit
049d4592c2
78 changed files with 178 additions and 225 deletions
|
@ -12,6 +12,7 @@
|
|||
#include <sprout/utility/swap.hpp>
|
||||
#include <sprout/tuple/tuple.hpp>
|
||||
#include <sprout/tuple/functions.hpp>
|
||||
#include <sprout/tuple/indexes.hpp>
|
||||
#include <sprout/type_traits/common_decay.hpp>
|
||||
#include <sprout/type/type_tuple.hpp>
|
||||
#include <sprout/type/algorithm/find_index.hpp>
|
||||
|
@ -49,7 +50,7 @@ namespace sprout {
|
|||
{}
|
||||
template<typename T, typename Index>
|
||||
SPROUT_CONSTEXPR variant_impl(T&& operand, Index)
|
||||
: tuple_(init(sprout::forward<T>(operand), sprout::index_range<0, Index::value>::make()))
|
||||
: tuple_(init(sprout::forward<T>(operand), sprout::make_index_tuple<Index::value>::make()))
|
||||
, which_(Index::value)
|
||||
{
|
||||
static_assert(Index::value < sizeof...(Types), "variant<>: invalid operand");
|
||||
|
@ -113,7 +114,7 @@ namespace sprout {
|
|||
&& !sprout::has_result_type<sprout::weak_result_type<Visitor> >::value
|
||||
>::type
|
||||
>
|
||||
: public visitor_result_impl_2<Visitor, Tuple, typename sprout::index_range<0, sprout::tuples::tuple_size<Tuple>::value>::type>
|
||||
: public visitor_result_impl_2<Visitor, Tuple, typename sprout::tuple_indexes<Tuple>::type>
|
||||
{};
|
||||
template<typename Visitor, typename Tuple>
|
||||
struct visitor_result_impl<
|
||||
|
@ -123,7 +124,7 @@ namespace sprout {
|
|||
&& !sprout::has_result_type<sprout::weak_result_type<Visitor> >::value
|
||||
>::type
|
||||
>
|
||||
: public visitor_result_impl_1<Visitor, Tuple, typename sprout::index_range<0, sprout::tuples::tuple_size<Tuple>::value>::type>
|
||||
: public visitor_result_impl_1<Visitor, Tuple, typename sprout::tuple_indexes<Tuple>::type>
|
||||
{};
|
||||
public:
|
||||
// visitation support
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue