mirror of
https://github.com/bolero-MURAKAMI/Sprout
synced 2025-08-03 12:49:50 +00:00
fix tuple constrution: SFINAE bug (for GCC4.7.0)
This commit is contained in:
parent
3f434dd7e1
commit
d7561c95dd
2 changed files with 102 additions and 26 deletions
|
@ -13,38 +13,70 @@ namespace sprout {
|
|||
// tuple
|
||||
//
|
||||
// tuple construction
|
||||
// template<typename... Types>
|
||||
// template<
|
||||
// typename... UTypes,
|
||||
// typename
|
||||
// >
|
||||
// inline SPROUT_CONSTEXPR sprout::tuples::tuple<Types...>::tuple(sprout::pair<UTypes...> const& t)
|
||||
// : impl_type(t.first, t.second)
|
||||
// {}
|
||||
// template<typename... Types>
|
||||
// template<
|
||||
// typename... UTypes,
|
||||
// typename
|
||||
// >
|
||||
// inline SPROUT_CONSTEXPR sprout::tuples::tuple<Types...>::tuple(sprout::pair<UTypes...>&& t)
|
||||
// : impl_type(sprout::forward<typename sprout::pair<UTypes...>::first_type>(t.first), sprout::forward<typename sprout::pair<UTypes...>::second_type>(t.second))
|
||||
// {}
|
||||
template<typename... Types>
|
||||
template<
|
||||
typename... UTypes,
|
||||
typename UType1, typename UType2,
|
||||
typename
|
||||
>
|
||||
inline SPROUT_CONSTEXPR sprout::tuples::tuple<Types...>::tuple(sprout::pair<UTypes...> const& t)
|
||||
inline SPROUT_CONSTEXPR sprout::tuples::tuple<Types...>::tuple(sprout::pair<UType1, UType2> const& t)
|
||||
: impl_type(t.first, t.second)
|
||||
{}
|
||||
template<typename... Types>
|
||||
template<
|
||||
typename... UTypes,
|
||||
typename UType1, typename UType2,
|
||||
typename
|
||||
>
|
||||
inline SPROUT_CONSTEXPR sprout::tuples::tuple<Types...>::tuple(sprout::pair<UTypes...>&& t)
|
||||
: impl_type(sprout::forward<typename sprout::pair<UTypes...>::first_type>(t.first), sprout::forward<typename sprout::pair<UTypes...>::second_type>(t.second))
|
||||
inline SPROUT_CONSTEXPR sprout::tuples::tuple<Types...>::tuple(sprout::pair<UType1, UType2>&& t)
|
||||
: impl_type(sprout::forward<typename sprout::pair<UType1, UType2>::first_type>(t.first), sprout::forward<typename sprout::pair<UType1, UType2>::second_type>(t.second))
|
||||
{}
|
||||
|
||||
// template<typename... Types>
|
||||
// template<
|
||||
// typename... UTypes,
|
||||
// typename
|
||||
// >
|
||||
// inline SPROUT_CONSTEXPR sprout::tuples::tuple<Types...>::tuple(sprout::tuples::flexibly_construct_t, sprout::pair<UTypes...> const& t)
|
||||
// : impl_type(t.first, t.second)
|
||||
// {}
|
||||
// template<typename... Types>
|
||||
// template<
|
||||
// typename... UTypes,
|
||||
// typename
|
||||
// >
|
||||
// inline SPROUT_CONSTEXPR sprout::tuples::tuple<Types...>::tuple(sprout::tuples::flexibly_construct_t, sprout::pair<UTypes...>&& t)
|
||||
// : impl_type(sprout::forward<typename sprout::pair<UTypes...>::first_type>(t.first), sprout::forward<typename sprout::pair<UTypes...>::second_type>(t.second))
|
||||
// {}
|
||||
template<typename... Types>
|
||||
template<
|
||||
typename... UTypes,
|
||||
typename UType1, typename UType2,
|
||||
typename
|
||||
>
|
||||
inline SPROUT_CONSTEXPR sprout::tuples::tuple<Types...>::tuple(sprout::tuples::flexibly_construct_t, sprout::pair<UTypes...> const& t)
|
||||
inline SPROUT_CONSTEXPR sprout::tuples::tuple<Types...>::tuple(sprout::tuples::flexibly_construct_t, sprout::pair<UType1, UType2> const& t)
|
||||
: impl_type(t.first, t.second)
|
||||
{}
|
||||
template<typename... Types>
|
||||
template<
|
||||
typename... UTypes,
|
||||
typename UType1, typename UType2,
|
||||
typename
|
||||
>
|
||||
inline SPROUT_CONSTEXPR sprout::tuples::tuple<Types...>::tuple(sprout::tuples::flexibly_construct_t, sprout::pair<UTypes...>&& t)
|
||||
: impl_type(sprout::forward<typename sprout::pair<UTypes...>::first_type>(t.first), sprout::forward<typename sprout::pair<UTypes...>::second_type>(t.second))
|
||||
inline SPROUT_CONSTEXPR sprout::tuples::tuple<Types...>::tuple(sprout::tuples::flexibly_construct_t, sprout::pair<UType1, UType2>&& t)
|
||||
: impl_type(sprout::forward<typename sprout::pair<UType1, UType2>::first_type>(t.first), sprout::forward<typename sprout::pair<UType1, UType2>::second_type>(t.second))
|
||||
{}
|
||||
} // namespace tuples
|
||||
} // namespace sprout
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue