fix inline

add container/indexes.hpp
add tuple/indexes.hpp
This commit is contained in:
bolero-MURAKAMI 2012-04-04 22:23:41 +09:00
commit c6bd230ee4
340 changed files with 1087 additions and 979 deletions

View file

@ -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
)

View file

@ -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;

View file

@ -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
View 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

View file

@ -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)...
);

View 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

View file

@ -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
)

View file

@ -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
)

View file

@ -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
)

View file

@ -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
)

View file

@ -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
)

View file

@ -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)...);
}
//

View file

@ -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
)