mirror of
https://github.com/bolero-MURAKAMI/Sprout.git
synced 2025-07-04 14:14:09 +00:00
fix index_tuple
This commit is contained in:
parent
48f1b2d615
commit
ee8602f6a3
42 changed files with 927 additions and 101 deletions
|
@ -6,10 +6,11 @@
|
|||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/iterator/merge_iterator.hpp>
|
||||
#include <sprout/functional/less.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/pit.hpp>
|
||||
#include <sprout/detail/container_complate.hpp>
|
||||
#include HDR_FUNCTIONAL_SSCRISK_CEL_OR_SPROUT
|
||||
|
||||
namespace sprout {
|
||||
namespace fixed {
|
||||
|
@ -67,6 +68,43 @@ namespace sprout {
|
|||
: sprout::detail::container_complate(result, args...)
|
||||
;
|
||||
}
|
||||
|
||||
template<typename InputIterator1, typename InputIterator2, typename Result, typename Compare>
|
||||
inline SPROUT_CONSTEXPR typename std::enable_if<
|
||||
sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type
|
||||
merge(
|
||||
InputIterator1 first1, InputIterator1 last1,
|
||||
InputIterator2 first2, InputIterator2 last2,
|
||||
Result const& result, Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::fixed::detail::merge_impl(
|
||||
first1, last1,
|
||||
first2, last2,
|
||||
result, comp,
|
||||
sprout::size(result)
|
||||
);
|
||||
}
|
||||
|
||||
template<typename InputIterator1, typename InputIterator2, typename Result, typename Compare>
|
||||
inline SPROUT_CONSTEXPR typename std::enable_if<
|
||||
!sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type
|
||||
merge(
|
||||
InputIterator1 first1, InputIterator1 last1,
|
||||
InputIterator2 first2, InputIterator2 last2,
|
||||
Result const& result, Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::remake<Result>(
|
||||
result, sprout::size(result),
|
||||
sprout::make_merge_iterator(first1, last1, first2, last2, comp),
|
||||
sprout::make_merge_iterator(last1, last1, last2, last2, comp)
|
||||
);
|
||||
}
|
||||
} // namespace detail
|
||||
//
|
||||
// merge
|
||||
|
@ -79,12 +117,7 @@ namespace sprout {
|
|||
Result const& result, Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::fixed::detail::merge_impl(
|
||||
first1, last1,
|
||||
first2, last2,
|
||||
result, comp,
|
||||
sprout::size(result)
|
||||
);
|
||||
return sprout::fixed::detail::merge(first1, last1, first2, last2, result, comp);
|
||||
}
|
||||
template<typename InputIterator1, typename InputIterator2, typename Result>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
|
@ -94,12 +127,7 @@ namespace sprout {
|
|||
Result const& result
|
||||
)
|
||||
{
|
||||
return sprout::fixed::detail::merge_impl(
|
||||
first1, last1,
|
||||
first2, last2,
|
||||
result, NS_SSCRISK_CEL_OR_SPROUT::less<typename sprout::container_traits<Result>::value_type>(),
|
||||
sprout::size(result)
|
||||
);
|
||||
return sprout::fixed::merge(first1, last1, first2, last2, result, sprout::less<>());
|
||||
}
|
||||
|
||||
template<typename Result, typename InputIterator1, typename InputIterator2, typename Compare>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue