mirror of
https://github.com/bolero-MURAKAMI/Sprout.git
synced 2025-10-19 13:49:23 +00:00
fix inline
add container/indexes.hpp add tuple/indexes.hpp
This commit is contained in:
parent
ba6482d1ec
commit
c6bd230ee4
340 changed files with 1087 additions and 979 deletions
|
@ -22,7 +22,7 @@ namespace sprout {
|
|||
|
||||
namespace detail {
|
||||
template<typename Result, typename Tuple, typename InputTuple, sprout::index_t... Indexes1, sprout::index_t... Indexes2>
|
||||
SPROUT_CONSTEXPR inline Result copy_impl(
|
||||
inline SPROUT_CONSTEXPR Result copy_impl(
|
||||
Tuple const& t,
|
||||
InputTuple const& input,
|
||||
sprout::index_tuple<Indexes1...>,
|
||||
|
@ -36,7 +36,7 @@ namespace sprout {
|
|||
);
|
||||
}
|
||||
template<typename Tuple, typename InputTuple>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
inline SPROUT_CONSTEXPR typename std::enable_if<
|
||||
(sprout::tuples::tuple_size<Tuple>::value > sprout::tuples::tuple_size<InputTuple>::value),
|
||||
typename sprout::tuples::result_of::copy<Tuple, InputTuple>::type
|
||||
>::type copy(
|
||||
|
@ -52,7 +52,7 @@ namespace sprout {
|
|||
);
|
||||
}
|
||||
template<typename Tuple, typename InputTuple>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
inline SPROUT_CONSTEXPR typename std::enable_if<
|
||||
!(sprout::tuples::tuple_size<Tuple>::value > sprout::tuples::tuple_size<InputTuple>::value),
|
||||
typename sprout::tuples::result_of::copy<Tuple, InputTuple>::type
|
||||
>::type copy(
|
||||
|
@ -72,7 +72,7 @@ namespace sprout {
|
|||
// copy
|
||||
//
|
||||
template<typename Tuple, typename InputTuple>
|
||||
SPROUT_CONSTEXPR inline typename sprout::tuples::result_of::copy<Tuple, InputTuple>::type copy(
|
||||
inline SPROUT_CONSTEXPR typename sprout::tuples::result_of::copy<Tuple, InputTuple>::type copy(
|
||||
Tuple const& t,
|
||||
InputTuple const& input
|
||||
)
|
||||
|
|
|
@ -12,7 +12,7 @@ namespace sprout {
|
|||
// deep_copy
|
||||
//
|
||||
template<typename Tuple>
|
||||
SPROUT_CONSTEXPR inline typename sprout::tuples::tuple_construct_traits<
|
||||
inline SPROUT_CONSTEXPR typename sprout::tuples::tuple_construct_traits<
|
||||
typename std::remove_reference<Tuple>::type
|
||||
>::copied_type deep_copy(Tuple&& tup) {
|
||||
typedef typename std::remove_reference<Tuple>::type tuple_type;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef SPROUT_TUPLE_FUNCTIONS_HPP
|
||||
#define SPROUT_TUPLE_FUNCTIONS_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/tuple/deep_copy.hpp>
|
||||
#include <sprout/tuple/make.hpp>
|
||||
#include <sprout/tuple/remake.hpp>
|
||||
|
|
30
sprout/tuple/indexes.hpp
Normal file
30
sprout/tuple/indexes.hpp
Normal file
|
@ -0,0 +1,30 @@
|
|||
#ifndef SPROUT_TUPLE_INDEXES_HPP
|
||||
#define SPROUT_TUPLE_INDEXES_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/index_tuple.hpp>
|
||||
#include <sprout/tuple/tuple.hpp>
|
||||
|
||||
namespace sprout {
|
||||
namespace tuples {
|
||||
//
|
||||
// tuple_indexes
|
||||
//
|
||||
template<typename Tuple>
|
||||
struct tuple_indexes
|
||||
: public sprout::detail::make_index_tuple_helper<
|
||||
sprout::index_range<0, sprout::tuples::tuple_size<Tuple>::value>
|
||||
>
|
||||
{};
|
||||
} // namespace tuples
|
||||
|
||||
//
|
||||
// tuple_indexes
|
||||
//
|
||||
template<typename Tuple>
|
||||
struct tuple_indexes
|
||||
: public sprout::tuples::tuple_indexes<Tuple>
|
||||
{};
|
||||
} // namespace sprout
|
||||
|
||||
#endif // #ifndef SPROUT_TUPLE_INDEXES_HPP
|
|
@ -12,7 +12,7 @@ namespace sprout {
|
|||
// make
|
||||
//
|
||||
template<typename Tuple, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename sprout::tuples::tuple_construct_traits<Tuple>::copied_type make(Args&&... args) {
|
||||
inline SPROUT_CONSTEXPR typename sprout::tuples::tuple_construct_traits<Tuple>::copied_type make(Args&&... args) {
|
||||
return sprout::tuples::tuple_construct_traits<Tuple>::make(
|
||||
sprout::forward<Args>(args)...
|
||||
);
|
||||
|
|
7
sprout/tuple/metafunctions.hpp
Normal file
7
sprout/tuple/metafunctions.hpp
Normal file
|
@ -0,0 +1,7 @@
|
|||
#ifndef SPROUT_TUPLE_METAFUNCTIONS_HPP
|
||||
#define SPROUT_TUPLE_METAFUNCTIONS_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/tuple/indexes.hpp>
|
||||
|
||||
#endif // #ifndef SPROUT_TUPLE_METAFUNCTIONS_HPP
|
|
@ -21,7 +21,7 @@ namespace sprout {
|
|||
|
||||
namespace detail {
|
||||
template<typename Result, typename Tuple, typename InputTuple, sprout::index_t... Indexes1, sprout::index_t... Indexes2>
|
||||
SPROUT_CONSTEXPR inline Result append_back_impl(
|
||||
inline SPROUT_CONSTEXPR Result append_back_impl(
|
||||
Tuple const& t,
|
||||
InputTuple const& input,
|
||||
sprout::index_tuple<Indexes1...>,
|
||||
|
@ -39,7 +39,7 @@ namespace sprout {
|
|||
// append_back
|
||||
//
|
||||
template<typename Tuple, typename InputTuple>
|
||||
SPROUT_CONSTEXPR inline typename sprout::tuples::result_of::append_back<Tuple, InputTuple>::type append_back(
|
||||
inline SPROUT_CONSTEXPR typename sprout::tuples::result_of::append_back<Tuple, InputTuple>::type append_back(
|
||||
Tuple const& t,
|
||||
InputTuple const& input
|
||||
)
|
||||
|
|
|
@ -21,7 +21,7 @@ namespace sprout {
|
|||
|
||||
namespace detail {
|
||||
template<typename Result, typename Tuple, typename InputTuple, sprout::index_t... Indexes1, sprout::index_t... Indexes2>
|
||||
SPROUT_CONSTEXPR inline Result append_front_impl(
|
||||
inline SPROUT_CONSTEXPR Result append_front_impl(
|
||||
Tuple const& t,
|
||||
InputTuple const& input,
|
||||
sprout::index_tuple<Indexes1...>,
|
||||
|
@ -39,7 +39,7 @@ namespace sprout {
|
|||
// append_front
|
||||
//
|
||||
template<typename Tuple, typename InputTuple>
|
||||
SPROUT_CONSTEXPR inline typename sprout::tuples::result_of::append_front<Tuple, InputTuple>::type append_front(
|
||||
inline SPROUT_CONSTEXPR typename sprout::tuples::result_of::append_front<Tuple, InputTuple>::type append_front(
|
||||
Tuple const& t,
|
||||
InputTuple const& input
|
||||
)
|
||||
|
|
|
@ -21,7 +21,7 @@ namespace sprout {
|
|||
|
||||
namespace detail {
|
||||
template<typename Result, typename Tuple, typename T, sprout::index_t... Indexes>
|
||||
SPROUT_CONSTEXPR inline Result push_back_impl(
|
||||
inline SPROUT_CONSTEXPR Result push_back_impl(
|
||||
Tuple const& t,
|
||||
T const& v,
|
||||
sprout::index_tuple<Indexes...>
|
||||
|
@ -38,7 +38,7 @@ namespace sprout {
|
|||
// push_back
|
||||
//
|
||||
template<typename Tuple, typename T>
|
||||
SPROUT_CONSTEXPR inline typename sprout::tuples::result_of::push_back<Tuple, T>::type push_back(
|
||||
inline SPROUT_CONSTEXPR typename sprout::tuples::result_of::push_back<Tuple, T>::type push_back(
|
||||
Tuple const& t,
|
||||
T const& v
|
||||
)
|
||||
|
|
|
@ -21,7 +21,7 @@ namespace sprout {
|
|||
|
||||
namespace detail {
|
||||
template<typename Result, typename Tuple, typename T, sprout::index_t... Indexes>
|
||||
SPROUT_CONSTEXPR inline Result push_front_impl(
|
||||
inline SPROUT_CONSTEXPR Result push_front_impl(
|
||||
Tuple const& t,
|
||||
T const& v,
|
||||
sprout::index_tuple<Indexes...>
|
||||
|
@ -38,7 +38,7 @@ namespace sprout {
|
|||
// push_front
|
||||
//
|
||||
template<typename Tuple, typename T>
|
||||
SPROUT_CONSTEXPR inline typename sprout::tuples::result_of::push_front<Tuple, T>::type push_front(
|
||||
inline SPROUT_CONSTEXPR typename sprout::tuples::result_of::push_front<Tuple, T>::type push_front(
|
||||
Tuple const& t,
|
||||
T const& v
|
||||
)
|
||||
|
|
|
@ -12,7 +12,7 @@ namespace sprout {
|
|||
// remake
|
||||
//
|
||||
template<typename Tuple, typename Tup, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename sprout::tuples::tuple_construct_traits<Tuple>::copied_type remake(
|
||||
inline SPROUT_CONSTEXPR typename sprout::tuples::tuple_construct_traits<Tuple>::copied_type remake(
|
||||
Tup&& tup,
|
||||
Args&&... args
|
||||
)
|
||||
|
|
|
@ -282,14 +282,14 @@ namespace sprout {
|
|||
// make_tuple
|
||||
//
|
||||
template<typename... Types>
|
||||
SPROUT_CONSTEXPR inline sprout::tuples::tuple<typename std::decay<Types>::type...> make_tuple(Types&&... args) {
|
||||
inline SPROUT_CONSTEXPR sprout::tuples::tuple<typename std::decay<Types>::type...> make_tuple(Types&&... args) {
|
||||
return sprout::tuples::tuple<typename std::decay<Types>::type...>(sprout::forward<Types>(args)...);
|
||||
}
|
||||
//
|
||||
// forward_as_tuple
|
||||
//
|
||||
template<typename... Types>
|
||||
SPROUT_CONSTEXPR inline sprout::tuples::tuple<Types&&...> forward_as_tuple(Types&&... args) SPROUT_NOEXCEPT {
|
||||
inline SPROUT_CONSTEXPR sprout::tuples::tuple<Types&&...> forward_as_tuple(Types&&... args) SPROUT_NOEXCEPT {
|
||||
return sprout::tuples::tuple<Types&&...>(sprout::forward<Types>(args)...);
|
||||
}
|
||||
//
|
||||
|
|
|
@ -46,7 +46,7 @@ namespace sprout {
|
|||
};
|
||||
} // namespace detail
|
||||
template<typename... TTypes, typename... UTypes>
|
||||
SPROUT_CONSTEXPR inline bool operator==(
|
||||
inline SPROUT_CONSTEXPR bool operator==(
|
||||
sprout::tuples::tuple<TTypes...> const& lhs,
|
||||
sprout::tuples::tuple<UTypes...> const& rhs
|
||||
)
|
||||
|
@ -62,7 +62,7 @@ namespace sprout {
|
|||
>::eq(lhs, rhs);
|
||||
}
|
||||
template<typename... TTypes, typename... UTypes>
|
||||
SPROUT_CONSTEXPR inline bool operator<(
|
||||
inline SPROUT_CONSTEXPR bool operator<(
|
||||
sprout::tuples::tuple<TTypes...> const& lhs,
|
||||
sprout::tuples::tuple<UTypes...> const& rhs
|
||||
)
|
||||
|
@ -78,7 +78,7 @@ namespace sprout {
|
|||
>::less(lhs, rhs);
|
||||
}
|
||||
template<typename... TTypes, typename... UTypes>
|
||||
SPROUT_CONSTEXPR inline bool operator!=(
|
||||
inline SPROUT_CONSTEXPR bool operator!=(
|
||||
sprout::tuples::tuple<TTypes...> const& lhs,
|
||||
sprout::tuples::tuple<UTypes...> const& rhs
|
||||
)
|
||||
|
@ -86,7 +86,7 @@ namespace sprout {
|
|||
return !(lhs == rhs);
|
||||
}
|
||||
template<typename... TTypes, typename... UTypes>
|
||||
SPROUT_CONSTEXPR inline bool operator>(
|
||||
inline SPROUT_CONSTEXPR bool operator>(
|
||||
sprout::tuples::tuple<TTypes...> const& lhs,
|
||||
sprout::tuples::tuple<UTypes...> const& rhs
|
||||
)
|
||||
|
@ -94,7 +94,7 @@ namespace sprout {
|
|||
return rhs < lhs;
|
||||
}
|
||||
template<typename... TTypes, typename... UTypes>
|
||||
SPROUT_CONSTEXPR inline bool operator<=(
|
||||
inline SPROUT_CONSTEXPR bool operator<=(
|
||||
sprout::tuples::tuple<TTypes...> const& lhs,
|
||||
sprout::tuples::tuple<UTypes...> const& rhs
|
||||
)
|
||||
|
@ -102,7 +102,7 @@ namespace sprout {
|
|||
return !(rhs < lhs);
|
||||
}
|
||||
template<typename... TTypes, typename... UTypes>
|
||||
SPROUT_CONSTEXPR inline bool operator>=(
|
||||
inline SPROUT_CONSTEXPR bool operator>=(
|
||||
sprout::tuples::tuple<TTypes...> const& lhs,
|
||||
sprout::tuples::tuple<UTypes...> const& rhs
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue