mirror of
https://github.com/bolero-MURAKAMI/Sprout
synced 2025-08-03 12:49:50 +00:00
fix tuple_element order
This commit is contained in:
parent
403e83eaf0
commit
c9610b5ae5
9 changed files with 70 additions and 63 deletions
|
@ -267,8 +267,8 @@ namespace sprout {
|
|||
struct is_flexibly_convert_constructible_impl<sprout::index_tuple<Indexes...>, Utypes...>
|
||||
: public sprout::tpp::all_of<
|
||||
sprout::is_convert_constructible<
|
||||
typename sprout::tppack_at<Indexes, Types...>::type,
|
||||
typename sprout::tppack_at<Indexes, Utypes...>::type
|
||||
typename sprout::pack_element<Indexes, Types...>::type,
|
||||
typename sprout::pack_element<Indexes, Utypes...>::type
|
||||
>...
|
||||
>
|
||||
{};
|
||||
|
@ -466,20 +466,6 @@ namespace sprout {
|
|||
{
|
||||
lhs.swap(rhs);
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
template<std::size_t I, typename T>
|
||||
struct tuple_element_impl;
|
||||
template<typename Head, typename... Tail>
|
||||
struct tuple_element_impl<0, sprout::tuples::tuple<Head, Tail...> > {
|
||||
public:
|
||||
typedef Head type;
|
||||
};
|
||||
template<std::size_t I, typename Head, typename... Tail>
|
||||
struct tuple_element_impl<I, sprout::tuples::tuple<Head, Tail...> >
|
||||
: public sprout::tuples::detail::tuple_element_impl<I - 1, sprout::tuples::tuple<Tail...> >
|
||||
{};
|
||||
} // namespace detail
|
||||
} // namespace tuples
|
||||
|
||||
using sprout::tuples::tuple;
|
||||
|
@ -504,7 +490,7 @@ namespace std {
|
|||
//
|
||||
template<std::size_t I, typename... Types>
|
||||
struct tuple_element<I, sprout::tuples::tuple<Types...> >
|
||||
: public sprout::tuples::detail::tuple_element_impl<I, sprout::tuples::tuple<Types...> >
|
||||
: public sprout::pack_element<I, Types...>
|
||||
{};
|
||||
#if defined(__clang__)
|
||||
# pragma clang diagnostic pop
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
|
||||
#include <tuple>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/type_traits/detail/type_traits_wrapper.hpp>
|
||||
|
||||
namespace sprout {
|
||||
namespace tuples {
|
||||
|
@ -18,7 +19,7 @@ namespace sprout {
|
|||
//
|
||||
template<typename T>
|
||||
struct tuple_size
|
||||
: public std::tuple_size<T>
|
||||
: public sprout::detail::type_traits_wrapper<std::tuple_size<T> >
|
||||
{};
|
||||
template<typename T>
|
||||
struct tuple_size<T const>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue