mirror of
https://github.com/bolero-MURAKAMI/Sprout.git
synced 2025-07-02 14:04:20 +00:00
[desuructive changes] container traits new interface [破壊的変更]
This commit is contained in:
parent
52a2178ac1
commit
ad60c8c530
356 changed files with 3183 additions and 3251 deletions
2
README
2
README
|
@ -57,7 +57,7 @@ constexpr UUID (UUID)
|
|||
sprout/pit.hpp
|
||||
|
||||
コンテナ特性 (Container traits)
|
||||
sprout/fixed_container.hpp
|
||||
sprout/container.hpp
|
||||
|
||||
constexpr 構文解析 (Parsing)
|
||||
sprout/weed.hpp
|
||||
|
|
|
@ -1,89 +1,70 @@
|
|||
#ifndef SPROUT_ADAPT_SSCRISK_CEL_ARRAY_HPP
|
||||
#define SPROUT_ADAPT_SSCRISK_CEL_ARRAY_HPP
|
||||
|
||||
#include <cstddef>
|
||||
#include <type_traits>
|
||||
#include <sscrisk/cel/array.hpp>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#if SPROUT_USE_INDEX_ITERATOR_IMPLEMENTATION
|
||||
# include <sprout/fixed_container/begin.hpp>
|
||||
# include <sprout/fixed_container/end.hpp>
|
||||
# include <cstddef>
|
||||
# include <type_traits>
|
||||
# include <sprout/container/begin.hpp>
|
||||
# include <sprout/container/end.hpp>
|
||||
# include <sprout/iterator/index_iterator.hpp>
|
||||
#endif
|
||||
|
||||
namespace sprout {
|
||||
//
|
||||
// rebind_fixed_size
|
||||
//
|
||||
template<typename T, std::size_t N>
|
||||
struct rebind_fixed_size<sscrisk::cel::array<T, N> > {
|
||||
public:
|
||||
template<typename sprout::fixed_container_traits<sscrisk::cel::array<T, N> >::size_type S>
|
||||
struct apply {
|
||||
public:
|
||||
typedef sscrisk::cel::array<T, S> type;
|
||||
};
|
||||
};
|
||||
|
||||
#if SPROUT_USE_INDEX_ITERATOR_IMPLEMENTATION
|
||||
//
|
||||
// fixed_container_traits
|
||||
// container_traits
|
||||
//
|
||||
template<typename T, std::size_t N>
|
||||
struct fixed_container_traits<sscrisk::cel::array<T, N> >
|
||||
: public sprout::detail::fixed_container_traits_base<sscrisk::cel::array<T, N> >
|
||||
struct container_traits<sscrisk::cel::array<T, N> >
|
||||
: public sprout::detail::container_traits_default_types<sscrisk::cel::array<T, N> >
|
||||
, public sprout::detail::container_traits_default_size<sscrisk::cel::array<T, N> >
|
||||
{
|
||||
public:
|
||||
typedef sscrisk::cel::array<T, N> fixed_container_type;
|
||||
typedef sscrisk::cel::array<T, N> internal_type;
|
||||
typedef sscrisk::cel::array<T, N> clone_type;
|
||||
typedef sprout::index_iterator<fixed_container_type&> iterator;
|
||||
typedef sprout::index_iterator<fixed_container_type const&> const_iterator;
|
||||
public:
|
||||
SPROUT_STATIC_CONSTEXPR typename sprout::detail::fixed_container_traits_base<fixed_container_type>::size_type fixed_size
|
||||
= std::tuple_size<typename std::remove_const<internal_type>::type>::value
|
||||
;
|
||||
typedef sprout::index_iterator<sscrisk::cel::array<T, N>&> iterator;
|
||||
typedef sprout::index_iterator<sscrisk::cel::array<T, N> const&> const_iterator;
|
||||
};
|
||||
|
||||
//
|
||||
// begin
|
||||
//
|
||||
template<typename T, std::size_t N>
|
||||
typename sprout::fixed_container_traits<sscrisk::cel::array<T, N> >::iterator begin(sscrisk::cel::array<T, N>& range) {
|
||||
return typename sprout::fixed_container_traits<sscrisk::cel::array<T, N> >::iterator(range, 0);
|
||||
typename sprout::container_traits<sscrisk::cel::array<T, N> >::iterator begin(sscrisk::cel::array<T, N>& cont) {
|
||||
return typename sprout::container_traits<sscrisk::cel::array<T, N> >::iterator(cont, 0);
|
||||
}
|
||||
template<typename T, std::size_t N>
|
||||
SPROUT_CONSTEXPR typename sprout::fixed_container_traits<sscrisk::cel::array<T, N> >::const_iterator begin(sscrisk::cel::array<T, N> const& range) {
|
||||
return typename sprout::fixed_container_traits<sscrisk::cel::array<T, N> >::const_iterator(range, 0);
|
||||
SPROUT_CONSTEXPR typename sprout::container_traits<sscrisk::cel::array<T, N> >::const_iterator begin(sscrisk::cel::array<T, N> const& cont) {
|
||||
return typename sprout::container_traits<sscrisk::cel::array<T, N> >::const_iterator(cont, 0);
|
||||
}
|
||||
|
||||
//
|
||||
// cbegin
|
||||
//
|
||||
template<typename T, std::size_t N>
|
||||
SPROUT_CONSTEXPR typename sprout::fixed_container_traits<sscrisk::cel::array<T, N> >::const_iterator cbegin(sscrisk::cel::array<T, N> const& range) {
|
||||
return sprout::fixed_container_traits<sscrisk::cel::array<T, N> >::const_iterator(range, 0);
|
||||
SPROUT_CONSTEXPR typename sprout::container_traits<sscrisk::cel::array<T, N> >::const_iterator cbegin(sscrisk::cel::array<T, N> const& cont) {
|
||||
return sprout::container_traits<sscrisk::cel::array<T, N> >::const_iterator(cont, 0);
|
||||
}
|
||||
|
||||
//
|
||||
// end
|
||||
//
|
||||
template<typename T, std::size_t N>
|
||||
typename sprout::fixed_container_traits<sscrisk::cel::array<T, N> >::iterator end(sscrisk::cel::array<T, N>& range) {
|
||||
return typename sprout::fixed_container_traits<sscrisk::cel::array<T, N> >::iterator(range, range.size());
|
||||
typename sprout::container_traits<sscrisk::cel::array<T, N> >::iterator end(sscrisk::cel::array<T, N>& cont) {
|
||||
return typename sprout::container_traits<sscrisk::cel::array<T, N> >::iterator(cont, cont.size());
|
||||
}
|
||||
template<typename T, std::size_t N>
|
||||
SPROUT_CONSTEXPR typename sprout::fixed_container_traits<sscrisk::cel::array<T, N> >::const_iterator end(sscrisk::cel::array<T, N> const& range) {
|
||||
return typename sprout::fixed_container_traits<sscrisk::cel::array<T, N> >::const_iterator(range, range.size());
|
||||
SPROUT_CONSTEXPR typename sprout::container_traits<sscrisk::cel::array<T, N> >::const_iterator end(sscrisk::cel::array<T, N> const& cont) {
|
||||
return typename sprout::container_traits<sscrisk::cel::array<T, N> >::const_iterator(cont, cont.size());
|
||||
}
|
||||
|
||||
//
|
||||
// cend
|
||||
//
|
||||
template<typename T, std::size_t N>
|
||||
SPROUT_CONSTEXPR typename sprout::fixed_container_traits<sscrisk::cel::array<T, N> >::const_iterator cend(sscrisk::cel::array<T, N> const& range) {
|
||||
return typename sprout::fixed_container_traits<sscrisk::cel::array<T, N> >::const_iterator(range, range.size());
|
||||
SPROUT_CONSTEXPR typename sprout::container_traits<sscrisk::cel::array<T, N> >::const_iterator cend(sscrisk::cel::array<T, N> const& cont) {
|
||||
return typename sprout::container_traits<sscrisk::cel::array<T, N> >::const_iterator(cont, cont.size());
|
||||
}
|
||||
#endif
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_BOGO_SORT_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/bogo_sort.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -16,11 +16,11 @@ namespace sprout {
|
|||
Container const& cont,
|
||||
UniformRandomNumberGenerator&& g,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::bogo_sort(cont, sprout::forward<UniformRandomNumberGenerator>(g), comp)),
|
||||
sprout::get_internal(sprout::fixed::bogo_sort(cont, sprout::forward<UniformRandomNumberGenerator>(g), comp)),
|
||||
offset,
|
||||
offset + sprout::size(cont)
|
||||
);
|
||||
|
@ -40,7 +40,7 @@ namespace sprout {
|
|||
cont,
|
||||
sprout::forward<UniformRandomNumberGenerator>(g),
|
||||
comp,
|
||||
sprout::fixed_begin_offset(cont)
|
||||
sprout::internal_begin_offset(cont)
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -49,11 +49,11 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type bogo_sort_impl(
|
||||
Container const& cont,
|
||||
UniformRandomNumberGenerator&& g,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::bogo_sort(cont, sprout::forward<UniformRandomNumberGenerator>(g))),
|
||||
sprout::get_internal(sprout::fixed::bogo_sort(cont, sprout::forward<UniformRandomNumberGenerator>(g))),
|
||||
offset,
|
||||
offset + sprout::size(cont)
|
||||
);
|
||||
|
@ -71,7 +71,7 @@ namespace sprout {
|
|||
return sprout::fit::detail::bogo_sort_impl(
|
||||
cont,
|
||||
sprout::forward<UniformRandomNumberGenerator>(g),
|
||||
sprout::fixed_begin_offset(cont)
|
||||
sprout::internal_begin_offset(cont)
|
||||
);
|
||||
}
|
||||
} // namespace fit
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/tuple/tuple.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/utility/forward.hpp>
|
||||
#include <sprout/algorithm/fixed/bogo_sort_result.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
|
@ -19,7 +19,7 @@ namespace sprout {
|
|||
typename std::decay<UniformRandomNumberGenerator>::type
|
||||
> bogo_sort_result_impl_1(
|
||||
Sorted const& sorted,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
typedef sprout::tuples::tuple<
|
||||
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
> result_type;
|
||||
return result_type(
|
||||
sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::tuples::get<0>(sorted)),
|
||||
sprout::get_internal(sprout::tuples::get<0>(sorted)),
|
||||
offset,
|
||||
offset + sprout::size(sprout::tuples::get<0>(sorted))
|
||||
),
|
||||
|
@ -43,7 +43,7 @@ namespace sprout {
|
|||
Container const& cont,
|
||||
UniformRandomNumberGenerator&& g,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::bogo_sort_result_impl_1<Container, UniformRandomNumberGenerator>(
|
||||
|
@ -69,7 +69,7 @@ namespace sprout {
|
|||
cont,
|
||||
sprout::forward<UniformRandomNumberGenerator>(g),
|
||||
comp,
|
||||
sprout::fixed_begin_offset(cont)
|
||||
sprout::internal_begin_offset(cont)
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -81,7 +81,7 @@ namespace sprout {
|
|||
> bogo_sort_result_impl(
|
||||
Container const& cont,
|
||||
UniformRandomNumberGenerator&& g,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::bogo_sort_result_impl_1<Container, UniformRandomNumberGenerator>(
|
||||
|
@ -105,7 +105,7 @@ namespace sprout {
|
|||
return sprout::fit::detail::bogo_sort_result_impl(
|
||||
cont,
|
||||
sprout::forward<UniformRandomNumberGenerator>(g),
|
||||
sprout::fixed_begin_offset(cont)
|
||||
sprout::internal_begin_offset(cont)
|
||||
);
|
||||
}
|
||||
} // namespace fit
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_COPY_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/copy.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -18,11 +18,11 @@ namespace sprout {
|
|||
InputIterator first,
|
||||
InputIterator last,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::copy(first, last, result)),
|
||||
sprout::get_internal(sprout::fixed::copy(first, last, result)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last), sprout::size(result))
|
||||
);
|
||||
|
@ -38,7 +38,7 @@ namespace sprout {
|
|||
Result const& result
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::copy_impl(first, last, result, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::copy_impl(first, last, result, sprout::internal_begin_offset(result));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_COPY_BACKWARD_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/copy_backward.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -18,11 +18,11 @@ namespace sprout {
|
|||
BidirectionalIterator first,
|
||||
BidirectionalIterator last,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::copy_backward(first, last, result)),
|
||||
sprout::get_internal(sprout::fixed::copy_backward(first, last, result)),
|
||||
offset - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last), sprout::size(result)),
|
||||
offset
|
||||
);
|
||||
|
@ -38,7 +38,7 @@ namespace sprout {
|
|||
Result const& result
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::copy_backward_impl(first, last, result, sprout::fixed_end_offset(result));
|
||||
return sprout::fit::detail::copy_backward_impl(first, last, result, sprout::internal_end_offset(result));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_COPY_IF_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/copy_if.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -18,11 +18,11 @@ namespace sprout {
|
|||
InputIterator last,
|
||||
Result const& result,
|
||||
Predicate pred,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::copy_if(first, last, result, pred)),
|
||||
sprout::get_internal(sprout::fixed::copy_if(first, last, result, pred)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::count_if(first, last, pred), sprout::size(result))
|
||||
);
|
||||
|
@ -39,7 +39,7 @@ namespace sprout {
|
|||
Predicate pred
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::copy_if_impl(first, last, result, pred, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::copy_if_impl(first, last, result, pred, sprout::internal_begin_offset(result));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_COPY_N_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/copy_n.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -17,11 +17,11 @@ namespace sprout {
|
|||
InputIterator first,
|
||||
Size n,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::copy_n(first, n, result)),
|
||||
sprout::get_internal(sprout::fixed::copy_n(first, n, result)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(n, sprout::size(result))
|
||||
);
|
||||
|
@ -37,7 +37,7 @@ namespace sprout {
|
|||
Result const& result
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::copy_n_impl(first, n, result, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::copy_n_impl(first, n, result, sprout::internal_begin_offset(result));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_FILL_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/fill.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -15,11 +15,11 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type fill_impl(
|
||||
Container const& cont,
|
||||
T const& value,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::fill(cont, value)),
|
||||
sprout::get_internal(sprout::fixed::fill(cont, value)),
|
||||
offset,
|
||||
offset + sprout::size(cont)
|
||||
);
|
||||
|
@ -34,7 +34,7 @@ namespace sprout {
|
|||
T const& value
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::fill_impl(cont, value, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::fill_impl(cont, value, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_FILL_N_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/fill_n.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -17,11 +17,11 @@ namespace sprout {
|
|||
Container const& cont,
|
||||
Size n,
|
||||
T const& value,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::fill_n(cont, n, value)),
|
||||
sprout::get_internal(sprout::fixed::fill_n(cont, n, value)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(n, sprout::size(cont))
|
||||
);
|
||||
|
@ -37,7 +37,7 @@ namespace sprout {
|
|||
T const& value
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::fill_n_impl(cont, n, value, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::fill_n_impl(cont, n, value, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_GENERATE_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/generate.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -15,12 +15,12 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type generate_impl(
|
||||
Container const& cont,
|
||||
Generator gen,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset,
|
||||
typename sprout::container_traits<Container>::difference_type offset,
|
||||
Inits const&... inits
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::generate(cont, gen, inits...)),
|
||||
sprout::get_internal(sprout::fixed::generate(cont, gen, inits...)),
|
||||
offset,
|
||||
offset + sprout::size(cont)
|
||||
);
|
||||
|
@ -36,7 +36,7 @@ namespace sprout {
|
|||
Inits const&... inits
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::generate_impl(cont, gen, sprout::fixed_begin_offset(cont), inits...);
|
||||
return sprout::fit::detail::generate_impl(cont, gen, sprout::internal_begin_offset(cont), inits...);
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_GENERATE_N_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/generate_n.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -17,12 +17,12 @@ namespace sprout {
|
|||
Container const& cont,
|
||||
Size n,
|
||||
Generator gen,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset,
|
||||
typename sprout::container_traits<Container>::difference_type offset,
|
||||
Inits const&... inits
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::generate_n(cont, n, gen, inits...)),
|
||||
sprout::get_internal(sprout::fixed::generate_n(cont, n, gen, inits...)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(n, sprout::size(cont))
|
||||
);
|
||||
|
@ -39,7 +39,7 @@ namespace sprout {
|
|||
Inits const&... inits
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::generate_n_impl(cont, n, gen, sprout::fixed_begin_offset(cont), inits...);
|
||||
return sprout::fit::detail::generate_n_impl(cont, n, gen, sprout::internal_begin_offset(cont), inits...);
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_INPLACE_MERGE_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/inplace_merge.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -14,13 +14,13 @@ namespace sprout {
|
|||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type inplace_merge_impl(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator middle,
|
||||
typename sprout::container_traits<Container>::const_iterator middle,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::inplace_merge(cont, middle, comp)),
|
||||
sprout::get_internal(sprout::fixed::inplace_merge(cont, middle, comp)),
|
||||
offset,
|
||||
offset + sprout::size(cont)
|
||||
);
|
||||
|
@ -32,23 +32,23 @@ namespace sprout {
|
|||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type inplace_merge(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator middle,
|
||||
typename sprout::container_traits<Container>::const_iterator middle,
|
||||
Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::inplace_merge_impl(cont, middle, comp, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::inplace_merge_impl(cont, middle, comp, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type inplace_merge_impl(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator middle,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::const_iterator middle,
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::inplace_merge(cont, middle)),
|
||||
sprout::get_internal(sprout::fixed::inplace_merge(cont, middle)),
|
||||
offset,
|
||||
offset + sprout::size(cont)
|
||||
);
|
||||
|
@ -60,10 +60,10 @@ namespace sprout {
|
|||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type inplace_merge(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator middle
|
||||
typename sprout::container_traits<Container>::const_iterator middle
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::inplace_merge_impl(cont, middle, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::inplace_merge_impl(cont, middle, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_MAKE_HEAP_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/make_heap.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -15,11 +15,11 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type make_heap_impl(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::make_heap(cont, comp)),
|
||||
sprout::get_internal(sprout::fixed::make_heap(cont, comp)),
|
||||
offset,
|
||||
offset + sprout::size(cont)
|
||||
);
|
||||
|
@ -34,18 +34,18 @@ namespace sprout {
|
|||
Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::make_heap_impl(cont, comp, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::make_heap_impl(cont, comp, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type make_heap_impl(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::make_heap(cont)),
|
||||
sprout::get_internal(sprout::fixed::make_heap(cont)),
|
||||
offset,
|
||||
offset + sprout::size(cont)
|
||||
);
|
||||
|
@ -59,7 +59,7 @@ namespace sprout {
|
|||
Container const& cont
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::make_heap_impl(cont, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::make_heap_impl(cont, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_MAKE_PARTIAL_HEAP_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/make_partial_heap.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -15,13 +15,13 @@ namespace sprout {
|
|||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type make_partial_heap_impl(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator middle,
|
||||
typename sprout::container_traits<Container>::const_iterator middle,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::make_partial_heap(cont, middle, comp)),
|
||||
sprout::get_internal(sprout::fixed::make_partial_heap(cont, middle, comp)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), middle)
|
||||
);
|
||||
|
@ -33,23 +33,23 @@ namespace sprout {
|
|||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type make_partial_heap(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator middle,
|
||||
typename sprout::container_traits<Container>::const_iterator middle,
|
||||
Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::make_partial_heap_impl(cont, middle, comp, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::make_partial_heap_impl(cont, middle, comp, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type make_partial_heap_impl(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator middle,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::const_iterator middle,
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::make_partial_heap(cont, middle)),
|
||||
sprout::get_internal(sprout::fixed::make_partial_heap(cont, middle)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), middle)
|
||||
);
|
||||
|
@ -61,10 +61,10 @@ namespace sprout {
|
|||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type make_partial_heap(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator middle
|
||||
typename sprout::container_traits<Container>::const_iterator middle
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::make_partial_heap_impl(cont, middle, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::make_partial_heap_impl(cont, middle, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_MERGE_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/merge.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -21,11 +21,11 @@ namespace sprout {
|
|||
InputIterator2 last2,
|
||||
Result const& result,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::merge(first1, last1, first2, last2, result, comp)),
|
||||
sprout::get_internal(sprout::fixed::merge(first1, last1, first2, last2, result, comp)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first1, last1) + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first2, last2),
|
||||
|
@ -47,7 +47,7 @@ namespace sprout {
|
|||
Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::merge_impl(first1, last1, first2, last2, result, comp, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::merge_impl(first1, last1, first2, last2, result, comp, sprout::internal_begin_offset(result));
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
|
@ -58,11 +58,11 @@ namespace sprout {
|
|||
InputIterator2 first2,
|
||||
InputIterator2 last2,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::merge(first1, last1, first2, last2, result)),
|
||||
sprout::get_internal(sprout::fixed::merge(first1, last1, first2, last2, result)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first1, last1) + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first2, last2),
|
||||
|
@ -83,7 +83,7 @@ namespace sprout {
|
|||
Result const& result
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::merge_impl(first1, last1, first2, last2, result, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::merge_impl(first1, last1, first2, last2, result, sprout::internal_begin_offset(result));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_NTH_ELEMENT_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/nth_element.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -15,13 +15,13 @@ namespace sprout {
|
|||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type nth_element_impl(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator nth,
|
||||
typename sprout::container_traits<Container>::const_iterator nth,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::nth_element(cont, nth, comp)),
|
||||
sprout::get_internal(sprout::fixed::nth_element(cont, nth, comp)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), nth) + 1
|
||||
);
|
||||
|
@ -33,23 +33,23 @@ namespace sprout {
|
|||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type nth_element(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator nth,
|
||||
typename sprout::container_traits<Container>::const_iterator nth,
|
||||
Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::nth_element_impl(cont, nth, comp, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::nth_element_impl(cont, nth, comp, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type nth_element_impl(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator nth,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::const_iterator nth,
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::nth_element(cont, nth)),
|
||||
sprout::get_internal(sprout::fixed::nth_element(cont, nth)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), nth) + 1
|
||||
);
|
||||
|
@ -61,10 +61,10 @@ namespace sprout {
|
|||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type nth_element(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator nth
|
||||
typename sprout::container_traits<Container>::const_iterator nth
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::nth_element_impl(cont, nth, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::nth_element_impl(cont, nth, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_PARTIAL_SORT_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/partial_sort.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -15,13 +15,13 @@ namespace sprout {
|
|||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type partial_sort_impl(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator middle,
|
||||
typename sprout::container_traits<Container>::const_iterator middle,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::partial_sort(cont, middle, comp)),
|
||||
sprout::get_internal(sprout::fixed::partial_sort(cont, middle, comp)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), middle)
|
||||
);
|
||||
|
@ -33,23 +33,23 @@ namespace sprout {
|
|||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type partial_sort(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator middle,
|
||||
typename sprout::container_traits<Container>::const_iterator middle,
|
||||
Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::partial_sort_impl(cont, middle, comp, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::partial_sort_impl(cont, middle, comp, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type partial_sort_impl(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator middle,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::const_iterator middle,
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::partial_sort(cont, middle)),
|
||||
sprout::get_internal(sprout::fixed::partial_sort(cont, middle)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), middle)
|
||||
);
|
||||
|
@ -61,10 +61,10 @@ namespace sprout {
|
|||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type partial_sort(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator middle
|
||||
typename sprout::container_traits<Container>::const_iterator middle
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::partial_sort_impl(cont, middle, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::partial_sort_impl(cont, middle, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_PARTITION_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/partition.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -16,11 +16,11 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type partition_impl(
|
||||
Container const& cont,
|
||||
Predicate pred,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::partition(cont, pred)),
|
||||
sprout::get_internal(sprout::fixed::partition(cont, pred)),
|
||||
offset,
|
||||
offset + sprout::size(cont) - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::count_if(sprout::begin(cont), sprout::end(cont), pred)
|
||||
);
|
||||
|
@ -35,7 +35,7 @@ namespace sprout {
|
|||
Predicate pred
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::partition_impl(cont, pred, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::partition_impl(cont, pred, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_PARTITION_COPY_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/partition_copy.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -20,11 +20,11 @@ namespace sprout {
|
|||
InputIterator last,
|
||||
Result const& result,
|
||||
Predicate pred,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::partition_copy(first, last, result, pred)),
|
||||
sprout::get_internal(sprout::fixed::partition_copy(first, last, result, pred)),
|
||||
offset,
|
||||
offset + sprout::detail::count_n_if(
|
||||
first,
|
||||
|
@ -48,7 +48,7 @@ namespace sprout {
|
|||
Predicate pred
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::partition_copy_impl(first, last, result, pred, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::partition_copy_impl(first, last, result, pred, sprout::internal_begin_offset(result));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_POP_HEAP_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/pop_heap.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -15,11 +15,11 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type pop_heap_impl(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::pop_heap(cont, comp)),
|
||||
sprout::get_internal(sprout::fixed::pop_heap(cont, comp)),
|
||||
offset,
|
||||
offset + sprout::size(cont) - 1
|
||||
);
|
||||
|
@ -34,18 +34,18 @@ namespace sprout {
|
|||
Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::pop_heap_impl(cont, comp, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::pop_heap_impl(cont, comp, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type pop_heap_impl(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::pop_heap(cont)),
|
||||
sprout::get_internal(sprout::fixed::pop_heap(cont)),
|
||||
offset,
|
||||
offset + sprout::size(cont) - 1
|
||||
);
|
||||
|
@ -59,7 +59,7 @@ namespace sprout {
|
|||
Container const& cont
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::pop_heap_impl(cont, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::pop_heap_impl(cont, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_PUSH_HEAP_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/push_heap.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -15,11 +15,11 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type push_heap_impl(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::push_heap(cont, comp)),
|
||||
sprout::get_internal(sprout::fixed::push_heap(cont, comp)),
|
||||
offset,
|
||||
offset + sprout::size(cont)
|
||||
);
|
||||
|
@ -34,18 +34,18 @@ namespace sprout {
|
|||
Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::push_heap_impl(cont, comp, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::push_heap_impl(cont, comp, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type push_heap_impl(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::push_heap(cont)),
|
||||
sprout::get_internal(sprout::fixed::push_heap(cont)),
|
||||
offset,
|
||||
offset + sprout::size(cont)
|
||||
);
|
||||
|
@ -59,7 +59,7 @@ namespace sprout {
|
|||
Container const& cont
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::push_heap_impl(cont, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::push_heap_impl(cont, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_REMOVE_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/remove.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -16,11 +16,11 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type remove_impl(
|
||||
Container const& cont,
|
||||
T const& value,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::remove(cont, value)),
|
||||
sprout::get_internal(sprout::fixed::remove(cont, value)),
|
||||
offset,
|
||||
offset + sprout::size(cont) - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::count(sprout::begin(cont), sprout::end(cont), value)
|
||||
);
|
||||
|
@ -35,7 +35,7 @@ namespace sprout {
|
|||
T const& value
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::remove_impl(cont, value, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::remove_impl(cont, value, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_REMOVE_COPY_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/remove_copy.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -19,11 +19,11 @@ namespace sprout {
|
|||
InputIterator last,
|
||||
Result const& result,
|
||||
T const& value,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::remove_copy(first, last, result, value)),
|
||||
sprout::get_internal(sprout::fixed::remove_copy(first, last, result, value)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last) - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::count(first, last, value), sprout::size(result))
|
||||
);
|
||||
|
@ -40,7 +40,7 @@ namespace sprout {
|
|||
T const& value
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::remove_copy_impl(first, last, result, value, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::remove_copy_impl(first, last, result, value, sprout::internal_begin_offset(result));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_REMOVE_COPY_IF_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/remove_copy_if.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -19,11 +19,11 @@ namespace sprout {
|
|||
InputIterator last,
|
||||
Result const& result,
|
||||
Predicate pred,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::remove_copy_if(first, last, result, pred)),
|
||||
sprout::get_internal(sprout::fixed::remove_copy_if(first, last, result, pred)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last) - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::count_if(first, last, pred), sprout::size(result))
|
||||
);
|
||||
|
@ -40,7 +40,7 @@ namespace sprout {
|
|||
Predicate pred
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::remove_copy_if_impl(first, last, result, pred, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::remove_copy_if_impl(first, last, result, pred, sprout::internal_begin_offset(result));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_REMOVE_IF_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/remove_if.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -16,11 +16,11 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type remove_if_impl(
|
||||
Container const& cont,
|
||||
Predicate pred,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::remove_if(cont, pred)),
|
||||
sprout::get_internal(sprout::fixed::remove_if(cont, pred)),
|
||||
offset,
|
||||
offset + sprout::size(cont) - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::count_if(sprout::begin(cont), sprout::end(cont), pred)
|
||||
);
|
||||
|
@ -35,7 +35,7 @@ namespace sprout {
|
|||
Predicate pred
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::remove_if_impl(cont, pred, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::remove_if_impl(cont, pred, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_REPLACE_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/replace.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -16,11 +16,11 @@ namespace sprout {
|
|||
Container const& cont,
|
||||
T const& old_value,
|
||||
T const& new_value,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::replace(cont, old_value, new_value)),
|
||||
sprout::get_internal(sprout::fixed::replace(cont, old_value, new_value)),
|
||||
offset,
|
||||
offset + sprout::size(cont)
|
||||
);
|
||||
|
@ -36,7 +36,7 @@ namespace sprout {
|
|||
T const& new_value
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::replace_impl(cont, old_value, new_value, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::replace_impl(cont, old_value, new_value, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_REPLACE_COPY_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/replace_copy.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -20,11 +20,11 @@ namespace sprout {
|
|||
Result const& result,
|
||||
T const& old_value,
|
||||
T const& new_value,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::replace_copy(first, last, result, old_value, new_value)),
|
||||
sprout::get_internal(sprout::fixed::replace_copy(first, last, result, old_value, new_value)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last), sprout::size(result))
|
||||
);
|
||||
|
@ -42,7 +42,7 @@ namespace sprout {
|
|||
T const& new_value
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::replace_copy_impl(first, last, result, old_value, new_value, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::replace_copy_impl(first, last, result, old_value, new_value, sprout::internal_begin_offset(result));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_REPLACE_COPY_IF_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/replace_copy_if.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -20,11 +20,11 @@ namespace sprout {
|
|||
Result const& result,
|
||||
Predicate pred,
|
||||
T const& new_value,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::replace_copy_if(first, last, result, pred, new_value)),
|
||||
sprout::get_internal(sprout::fixed::replace_copy_if(first, last, result, pred, new_value)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last), sprout::size(result))
|
||||
);
|
||||
|
@ -42,7 +42,7 @@ namespace sprout {
|
|||
T const& new_value
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::replace_copy_if_impl(first, last, result, pred, new_value, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::replace_copy_if_impl(first, last, result, pred, new_value, sprout::internal_begin_offset(result));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_REPLACE_IF_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/replace_if.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -16,11 +16,11 @@ namespace sprout {
|
|||
Container const& cont,
|
||||
Predicate pred,
|
||||
T const& new_value,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::replace_if(cont, pred, new_value)),
|
||||
sprout::get_internal(sprout::fixed::replace_if(cont, pred, new_value)),
|
||||
offset,
|
||||
offset + sprout::size(cont)
|
||||
);
|
||||
|
@ -36,7 +36,7 @@ namespace sprout {
|
|||
T const& new_value
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::replace_if_impl(cont, pred, new_value, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::replace_if_impl(cont, pred, new_value, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
#ifndef SPROUT_ALGORITHM_FIT_RESULT_OF_HPP
|
||||
#define SPROUT_ALGORITHM_FIT_RESULT_OF_HPP
|
||||
|
||||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/metafunctions.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
||||
|
@ -16,9 +18,11 @@ namespace sprout {
|
|||
struct algorithm {
|
||||
public:
|
||||
typedef sprout::sub_array<
|
||||
typename sprout::fixed_container_traits<
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::internal_type
|
||||
typename std::decay<
|
||||
typename sprout::containers::internal<
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type
|
||||
>::type
|
||||
> type;
|
||||
};
|
||||
} // namespace result_of
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_REVERSE_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/reverse.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -14,11 +14,11 @@ namespace sprout {
|
|||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type reverse_impl(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::reverse(cont)),
|
||||
sprout::get_internal(sprout::fixed::reverse(cont)),
|
||||
offset,
|
||||
offset + sprout::size(cont)
|
||||
);
|
||||
|
@ -32,7 +32,7 @@ namespace sprout {
|
|||
Container const& cont
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::reverse_impl(cont, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::reverse_impl(cont, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_REVERSE_COPY_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/reverse_copy.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -18,11 +18,11 @@ namespace sprout {
|
|||
BidirectionalIterator first,
|
||||
BidirectionalIterator last,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::reverse_copy(first, last, result)),
|
||||
sprout::get_internal(sprout::fixed::reverse_copy(first, last, result)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last), sprout::size(result))
|
||||
);
|
||||
|
@ -38,7 +38,7 @@ namespace sprout {
|
|||
Result const& result
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::reverse_copy_impl(first, last, result, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::reverse_copy_impl(first, last, result, sprout::internal_begin_offset(result));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_ROTATE_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/rotate.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -14,12 +14,12 @@ namespace sprout {
|
|||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type rotate_impl(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator middle,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::const_iterator middle,
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::rotate(cont, middle)),
|
||||
sprout::get_internal(sprout::fixed::rotate(cont, middle)),
|
||||
offset,
|
||||
offset + sprout::size(cont)
|
||||
);
|
||||
|
@ -31,10 +31,10 @@ namespace sprout {
|
|||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type rotate(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator middle
|
||||
typename sprout::container_traits<Container>::const_iterator middle
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::rotate_impl(cont, middle, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::rotate_impl(cont, middle, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_ROTATE_COPY_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/rotate_copy.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -19,11 +19,11 @@ namespace sprout {
|
|||
ForwardIterator middle,
|
||||
ForwardIterator last,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::rotate_copy(first, middle, last, result)),
|
||||
sprout::get_internal(sprout::fixed::rotate_copy(first, middle, last, result)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last), sprout::size(result))
|
||||
);
|
||||
|
@ -40,7 +40,7 @@ namespace sprout {
|
|||
Result const& result
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::rotate_copy_impl(first, middle, last, result, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::rotate_copy_impl(first, middle, last, result, sprout::internal_begin_offset(result));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_SET_DIFFERENCE_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/set_difference.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -22,11 +22,11 @@ namespace sprout {
|
|||
InputIterator2 last2,
|
||||
Result const& result,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::set_difference(first1, last1, first2, last2, result, comp)),
|
||||
sprout::get_internal(sprout::fixed::set_difference(first1, last1, first2, last2, result, comp)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first1, last1)
|
||||
|
@ -50,7 +50,7 @@ namespace sprout {
|
|||
Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::set_difference_impl(first1, last1, first2, last2, result, comp, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::set_difference_impl(first1, last1, first2, last2, result, comp, sprout::internal_begin_offset(result));
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
|
@ -61,11 +61,11 @@ namespace sprout {
|
|||
InputIterator2 first2,
|
||||
InputIterator2 last2,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::set_difference(first1, last1, first2, last2, result)),
|
||||
sprout::get_internal(sprout::fixed::set_difference(first1, last1, first2, last2, result)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first1, last1)
|
||||
|
@ -88,7 +88,7 @@ namespace sprout {
|
|||
Result const& result
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::set_difference_impl(first1, last1, first2, last2, result, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::set_difference_impl(first1, last1, first2, last2, result, sprout::internal_begin_offset(result));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_SET_INTERSECTION_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/set_intersection.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -21,11 +21,11 @@ namespace sprout {
|
|||
InputIterator2 last2,
|
||||
Result const& result,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::set_intersection(first1, last1, first2, last2, result, comp)),
|
||||
sprout::get_internal(sprout::fixed::set_intersection(first1, last1, first2, last2, result, comp)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(
|
||||
sprout::detail::overlap_count_2(first1, last1, first2, last2, comp),
|
||||
|
@ -47,7 +47,7 @@ namespace sprout {
|
|||
Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::set_intersection_impl(first1, last1, first2, last2, result, comp, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::set_intersection_impl(first1, last1, first2, last2, result, comp, sprout::internal_begin_offset(result));
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
|
@ -58,11 +58,11 @@ namespace sprout {
|
|||
InputIterator2 first2,
|
||||
InputIterator2 last2,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::set_intersection(first1, last1, first2, last2, result)),
|
||||
sprout::get_internal(sprout::fixed::set_intersection(first1, last1, first2, last2, result)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(
|
||||
sprout::detail::overlap_count_2(first1, last1, first2, last2),
|
||||
|
@ -83,7 +83,7 @@ namespace sprout {
|
|||
Result const& result
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::set_intersection_impl(first1, last1, first2, last2, result, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::set_intersection_impl(first1, last1, first2, last2, result, sprout::internal_begin_offset(result));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_SET_SYMMETRIC_DIFFERENCE_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/set_symmetric_difference.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -22,11 +22,11 @@ namespace sprout {
|
|||
InputIterator2 last2,
|
||||
Result const& result,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::set_symmetric_difference(first1, last1, first2, last2, result, comp)),
|
||||
sprout::get_internal(sprout::fixed::set_symmetric_difference(first1, last1, first2, last2, result, comp)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first1, last1)
|
||||
|
@ -51,7 +51,7 @@ namespace sprout {
|
|||
Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::set_symmetric_difference_impl(first1, last1, first2, last2, result, comp, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::set_symmetric_difference_impl(first1, last1, first2, last2, result, comp, sprout::internal_begin_offset(result));
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
|
@ -62,11 +62,11 @@ namespace sprout {
|
|||
InputIterator2 first2,
|
||||
InputIterator2 last2,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::set_symmetric_difference(first1, last1, first2, last2, result)),
|
||||
sprout::get_internal(sprout::fixed::set_symmetric_difference(first1, last1, first2, last2, result)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first1, last1)
|
||||
|
@ -90,7 +90,7 @@ namespace sprout {
|
|||
Result const& result
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::set_symmetric_difference_impl(first1, last1, first2, last2, result, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::set_symmetric_difference_impl(first1, last1, first2, last2, result, sprout::internal_begin_offset(result));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_SET_UNION_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/set_union.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -22,11 +22,11 @@ namespace sprout {
|
|||
InputIterator2 last2,
|
||||
Result const& result,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::set_union(first1, last1, first2, last2, result, comp)),
|
||||
sprout::get_internal(sprout::fixed::set_union(first1, last1, first2, last2, result, comp)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first1, last1)
|
||||
|
@ -51,7 +51,7 @@ namespace sprout {
|
|||
Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::set_union_impl(first1, last1, first2, last2, result, comp, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::set_union_impl(first1, last1, first2, last2, result, comp, sprout::internal_begin_offset(result));
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
|
@ -62,11 +62,11 @@ namespace sprout {
|
|||
InputIterator2 first2,
|
||||
InputIterator2 last2,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::set_union(first1, last1, first2, last2, result)),
|
||||
sprout::get_internal(sprout::fixed::set_union(first1, last1, first2, last2, result)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first1, last1)
|
||||
|
@ -90,7 +90,7 @@ namespace sprout {
|
|||
Result const& result
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::set_union_impl(first1, last1, first2, last2, result, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::set_union_impl(first1, last1, first2, last2, result, sprout::internal_begin_offset(result));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_SHUFFLE_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/utility/forward.hpp>
|
||||
#include <sprout/algorithm/fixed/shuffle.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
|
@ -16,11 +16,11 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type shuffle_impl(
|
||||
Container const& cont,
|
||||
UniformRandomNumberGenerator&& g,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::shuffle(cont, sprout::forward<UniformRandomNumberGenerator>(g))),
|
||||
sprout::get_internal(sprout::fixed::shuffle(cont, sprout::forward<UniformRandomNumberGenerator>(g))),
|
||||
offset,
|
||||
offset + sprout::size(cont)
|
||||
);
|
||||
|
@ -38,7 +38,7 @@ namespace sprout {
|
|||
return sprout::fit::detail::shuffle_impl(
|
||||
cont,
|
||||
sprout::forward<UniformRandomNumberGenerator>(g),
|
||||
sprout::fixed_begin_offset(cont)
|
||||
sprout::internal_begin_offset(cont)
|
||||
);
|
||||
}
|
||||
} // namespace fit
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/tuple/tuple.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/utility/forward.hpp>
|
||||
#include <sprout/algorithm/fixed/shuffle_result.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
|
@ -19,7 +19,7 @@ namespace sprout {
|
|||
typename std::decay<UniformRandomNumberGenerator>::type
|
||||
> shuffle_result_impl_1(
|
||||
Shuffled const& shuffled,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
typedef sprout::tuples::tuple<
|
||||
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
> result_type;
|
||||
return result_type(
|
||||
sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::tuples::get<0>(shuffled)),
|
||||
sprout::get_internal(sprout::tuples::get<0>(shuffled)),
|
||||
offset,
|
||||
offset + sprout::size(sprout::tuples::get<0>(shuffled))
|
||||
),
|
||||
|
@ -42,7 +42,7 @@ namespace sprout {
|
|||
> shuffle_result_impl(
|
||||
Container const& cont,
|
||||
UniformRandomNumberGenerator&& g,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::shuffle_result_impl_1<Container, UniformRandomNumberGenerator>(
|
||||
|
@ -66,7 +66,7 @@ namespace sprout {
|
|||
return sprout::fit::detail::shuffle_result_impl(
|
||||
cont,
|
||||
sprout::forward<UniformRandomNumberGenerator>(g),
|
||||
sprout::fixed_begin_offset(cont)
|
||||
sprout::internal_begin_offset(cont)
|
||||
);
|
||||
}
|
||||
} // namespace fit
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_SORT_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/sort.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -15,11 +15,11 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type sort_impl(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::sort(cont, comp)),
|
||||
sprout::get_internal(sprout::fixed::sort(cont, comp)),
|
||||
offset,
|
||||
offset + sprout::size(cont)
|
||||
);
|
||||
|
@ -34,18 +34,18 @@ namespace sprout {
|
|||
Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::sort_impl(cont, comp, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::sort_impl(cont, comp, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type sort_impl(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::sort(cont)),
|
||||
sprout::get_internal(sprout::fixed::sort(cont)),
|
||||
offset,
|
||||
offset + sprout::size(cont)
|
||||
);
|
||||
|
@ -59,7 +59,7 @@ namespace sprout {
|
|||
Container const& cont
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::sort_impl(cont, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::sort_impl(cont, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_SORT_HEAP_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/sort_heap.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -15,11 +15,11 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type sort_heap_impl(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::sort_heap(cont, comp)),
|
||||
sprout::get_internal(sprout::fixed::sort_heap(cont, comp)),
|
||||
offset,
|
||||
offset + sprout::size(cont)
|
||||
);
|
||||
|
@ -34,18 +34,18 @@ namespace sprout {
|
|||
Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::sort_heap_impl(cont, comp, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::sort_heap_impl(cont, comp, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type sort_heap_impl(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::sort_heap(cont)),
|
||||
sprout::get_internal(sprout::fixed::sort_heap(cont)),
|
||||
offset,
|
||||
offset + sprout::size(cont)
|
||||
);
|
||||
|
@ -59,7 +59,7 @@ namespace sprout {
|
|||
Container const& cont
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::sort_heap_impl(cont, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::sort_heap_impl(cont, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_STABLE_PARTITION_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/stable_partition.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -16,11 +16,11 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type stable_partition_impl(
|
||||
Container const& cont,
|
||||
Predicate pred,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::stable_partition(cont, pred)),
|
||||
sprout::get_internal(sprout::fixed::stable_partition(cont, pred)),
|
||||
offset,
|
||||
offset + sprout::size(cont) - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::count_if(sprout::begin(cont), sprout::end(cont), pred)
|
||||
);
|
||||
|
@ -35,7 +35,7 @@ namespace sprout {
|
|||
Predicate pred
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::stable_partition_impl(cont, pred, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::stable_partition_impl(cont, pred, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_STABLE_PARTITION_COPY_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/stable_partition_copy.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -18,11 +18,11 @@ namespace sprout {
|
|||
InputIterator last,
|
||||
Result const& result,
|
||||
Predicate pred,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::stable_partition_copy(first, last, result, pred)),
|
||||
sprout::get_internal(sprout::fixed::stable_partition_copy(first, last, result, pred)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::count_if(first, last, pred), sprout::size(result))
|
||||
);
|
||||
|
@ -39,7 +39,7 @@ namespace sprout {
|
|||
Predicate pred
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::stable_partition_copy_impl(first, last, result, pred, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::stable_partition_copy_impl(first, last, result, pred, sprout::internal_begin_offset(result));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_STABLE_SORT_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/stable_sort.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -15,11 +15,11 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type stable_sort_impl(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::stable_sort(cont, comp)),
|
||||
sprout::get_internal(sprout::fixed::stable_sort(cont, comp)),
|
||||
offset,
|
||||
offset + sprout::size(cont)
|
||||
);
|
||||
|
@ -34,18 +34,18 @@ namespace sprout {
|
|||
Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::stable_sort_impl(cont, comp, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::stable_sort_impl(cont, comp, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type stable_sort_impl(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::stable_sort(cont)),
|
||||
sprout::get_internal(sprout::fixed::stable_sort(cont)),
|
||||
offset,
|
||||
offset + sprout::size(cont)
|
||||
);
|
||||
|
@ -59,7 +59,7 @@ namespace sprout {
|
|||
Container const& cont
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::stable_sort_impl(cont, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::stable_sort_impl(cont, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_SWAP_ELEMENT_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/swap_element.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -15,13 +15,13 @@ namespace sprout {
|
|||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type swap_element_impl(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator pos1,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator pos2,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::const_iterator pos1,
|
||||
typename sprout::container_traits<Container>::const_iterator pos2,
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::swap_element(cont, pos1, pos2)),
|
||||
sprout::get_internal(sprout::fixed::swap_element(cont, pos1, pos2)),
|
||||
offset,
|
||||
offset + sprout::size(cont)
|
||||
);
|
||||
|
@ -33,11 +33,11 @@ namespace sprout {
|
|||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type swap_element(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator pos1,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator pos2
|
||||
typename sprout::container_traits<Container>::const_iterator pos1,
|
||||
typename sprout::container_traits<Container>::const_iterator pos2
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::swap_element_impl(cont, pos1, pos2, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::swap_element_impl(cont, pos1, pos2, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_SWAP_ELEMENT_COPY_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/swap_element_copy.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -20,11 +20,11 @@ namespace sprout {
|
|||
Result const& result,
|
||||
InputIterator pos1,
|
||||
InputIterator pos2,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::swap_element_copy(first, last, result, pos1, pos2)),
|
||||
sprout::get_internal(sprout::fixed::swap_element_copy(first, last, result, pos1, pos2)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last), sprout::size(result))
|
||||
);
|
||||
|
@ -42,7 +42,7 @@ namespace sprout {
|
|||
InputIterator pos2
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::swap_element_copy_impl(first, last, result, pos1, pos2, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::swap_element_copy_impl(first, last, result, pos1, pos2, sprout::internal_begin_offset(result));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_TRANSFORM_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/transform.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -19,11 +19,11 @@ namespace sprout {
|
|||
Iterator last,
|
||||
Result const& result,
|
||||
UnaryOperation op,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::transform(first, last, result, op)),
|
||||
sprout::get_internal(sprout::fixed::transform(first, last, result, op)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last), sprout::size(result))
|
||||
);
|
||||
|
@ -40,7 +40,7 @@ namespace sprout {
|
|||
UnaryOperation op
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::transform_impl(first, last, result, op, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::transform_impl(first, last, result, op, sprout::internal_begin_offset(result));
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
|
@ -51,11 +51,11 @@ namespace sprout {
|
|||
Iterator2 first2,
|
||||
Result const& result,
|
||||
BinaryOperation op,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::transform(first1, last1, first2, result, op)),
|
||||
sprout::get_internal(sprout::fixed::transform(first1, last1, first2, result, op)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first1, last1), sprout::size(result))
|
||||
);
|
||||
|
@ -73,7 +73,7 @@ namespace sprout {
|
|||
BinaryOperation op
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::transform_impl(first1, last1, first2, result, op, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::transform_impl(first1, last1, first2, result, op, sprout::internal_begin_offset(result));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_UNIQUE_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/unique.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -15,11 +15,11 @@ namespace sprout {
|
|||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type unique_impl(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::unique(cont)),
|
||||
sprout::get_internal(sprout::fixed::unique(cont)),
|
||||
offset,
|
||||
offset + sprout::size(cont) - sprout::detail::overlap_count(sprout::begin(cont), sprout::end(cont))
|
||||
);
|
||||
|
@ -33,7 +33,7 @@ namespace sprout {
|
|||
Container const& cont
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::unique_impl(cont, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::unique_impl(cont, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
|
@ -41,11 +41,11 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm<Container>::type unique_impl(
|
||||
Container const& cont,
|
||||
BinaryPredicate pred,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset
|
||||
typename sprout::container_traits<Container>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::unique(cont, pred)),
|
||||
sprout::get_internal(sprout::fixed::unique(cont, pred)),
|
||||
offset,
|
||||
offset + sprout::size(cont) - sprout::detail::overlap_count(sprout::begin(cont), sprout::end(cont), pred)
|
||||
);
|
||||
|
@ -60,7 +60,7 @@ namespace sprout {
|
|||
BinaryPredicate pred
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::unique_impl(cont, pred, sprout::fixed_begin_offset(cont));
|
||||
return sprout::fit::detail::unique_impl(cont, pred, sprout::internal_begin_offset(cont));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIT_UNIQUE_COPY_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/unique_copy.hpp>
|
||||
#include <sprout/algorithm/fit/result_of.hpp>
|
||||
#include <sprout/sub_array.hpp>
|
||||
|
@ -19,11 +19,11 @@ namespace sprout {
|
|||
InputIterator first,
|
||||
InputIterator last,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::unique_copy(first, last, result)),
|
||||
sprout::get_internal(sprout::fixed::unique_copy(first, last, result)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last) - sprout::detail::overlap_count(first, last), sprout::size(result))
|
||||
);
|
||||
|
@ -39,7 +39,7 @@ namespace sprout {
|
|||
Result const& result
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::unique_copy_impl(first, last, result, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::unique_copy_impl(first, last, result, sprout::internal_begin_offset(result));
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
|
@ -49,11 +49,11 @@ namespace sprout {
|
|||
InputIterator last,
|
||||
Result const& result,
|
||||
BinaryPredicate pred,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset
|
||||
typename sprout::container_traits<Result>::difference_type offset
|
||||
)
|
||||
{
|
||||
return sprout::sub_copy(
|
||||
sprout::get_fixed(sprout::fixed::unique_copy(first, last, result, pred)),
|
||||
sprout::get_internal(sprout::fixed::unique_copy(first, last, result, pred)),
|
||||
offset,
|
||||
offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last) - sprout::detail::overlap_count(first, last, pred), sprout::size(result))
|
||||
);
|
||||
|
@ -70,7 +70,7 @@ namespace sprout {
|
|||
BinaryPredicate pred
|
||||
)
|
||||
{
|
||||
return sprout::fit::detail::unique_copy_impl(first, last, result, pred, sprout::fixed_begin_offset(result));
|
||||
return sprout::fit::detail::unique_copy_impl(first, last, result, pred, sprout::internal_begin_offset(result));
|
||||
}
|
||||
} // namespace fit
|
||||
} // namespace sprout
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/tuple/tuple.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/utility/forward.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
|
@ -48,7 +48,7 @@ namespace sprout {
|
|||
sprout::end(cont),
|
||||
comp
|
||||
)
|
||||
? sprout::clone(cont)
|
||||
? sprout::deep_copy(cont)
|
||||
: sprout::fixed::detail::bogo_sort_impl_1<Container>(
|
||||
sprout::fixed::shuffle_result(
|
||||
cont,
|
||||
|
@ -87,7 +87,7 @@ namespace sprout {
|
|||
return sprout::fixed::detail::bogo_sort_impl(
|
||||
cont,
|
||||
sprout::forward<UniformRandomNumberGenerator>(g),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::fixed_container_traits<Container>::value_type>()
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::container_traits<Container>::value_type>()
|
||||
);
|
||||
}
|
||||
} // namespace fixed
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/tuple/tuple.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/utility/forward.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
|
@ -60,7 +60,7 @@ namespace sprout {
|
|||
comp
|
||||
)
|
||||
? result_type(
|
||||
sprout::clone(cont),
|
||||
sprout::deep_copy(cont),
|
||||
sprout::forward<UniformRandomNumberGenerator>(g)
|
||||
)
|
||||
: sprout::fixed::detail::bogo_sort_result_impl_1<Container, UniformRandomNumberGenerator>(
|
||||
|
@ -107,7 +107,7 @@ namespace sprout {
|
|||
return sprout::fixed::detail::bogo_sort_result_impl(
|
||||
cont,
|
||||
sprout::forward<UniformRandomNumberGenerator>(g),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::fixed_container_traits<Container>::value_type>()
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::container_traits<Container>::value_type>()
|
||||
);
|
||||
}
|
||||
} // namespace fixed
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/index_tuple.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/detail/container_complate.hpp>
|
||||
|
@ -21,17 +21,17 @@ namespace sprout {
|
|||
RandomAccessIterator last,
|
||||
Result const& result,
|
||||
sprout::index_tuple<Indexes...>,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::fixed_container_traits<Result>::size_type input_size
|
||||
typename sprout::container_traits<Result>::difference_type offset,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type input_size
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(
|
||||
return sprout::remake<Result>(
|
||||
result,
|
||||
sprout::size(result),
|
||||
(Indexes >= offset && Indexes < offset + size && Indexes < offset + input_size
|
||||
? *sprout::next(first, Indexes - offset)
|
||||
: *sprout::next(sprout::fixed_begin(result), Indexes)
|
||||
: *sprout::next(sprout::internal_begin(result), Indexes)
|
||||
)...
|
||||
);
|
||||
}
|
||||
|
@ -47,35 +47,35 @@ namespace sprout {
|
|||
first,
|
||||
last,
|
||||
result,
|
||||
typename sprout::index_range<0, sprout::fixed_container_traits<Result>::fixed_size>::type(),
|
||||
sprout::fixed_begin_offset(result),
|
||||
typename sprout::index_range<0, sprout::container_traits<Result>::static_size>::type(),
|
||||
sprout::internal_begin_offset(result),
|
||||
sprout::size(result),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last)
|
||||
);
|
||||
}
|
||||
template<typename InputIterator, typename Result, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type copy_impl(
|
||||
InputIterator first,
|
||||
InputIterator last,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args...);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args...);
|
||||
}
|
||||
template<typename InputIterator, typename Result, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type copy_impl(
|
||||
InputIterator first,
|
||||
InputIterator last,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/index_tuple.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/detail/container_complate_backward.hpp>
|
||||
|
@ -22,17 +22,17 @@ namespace sprout {
|
|||
RandomAccessIterator last,
|
||||
Result const& result,
|
||||
sprout::index_tuple<Indexes...>,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::fixed_container_traits<Result>::size_type input_size
|
||||
typename sprout::container_traits<Result>::difference_type offset,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type input_size
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(
|
||||
return sprout::remake<Result>(
|
||||
result,
|
||||
sprout::size(result),
|
||||
(Indexes < offset && Indexes + size >= static_cast<std::size_t>(offset) && Indexes + input_size >= static_cast<std::size_t>(offset)
|
||||
? *sprout::next(last, Indexes - offset)
|
||||
: *sprout::next(sprout::fixed_begin(result), Indexes)
|
||||
: *sprout::next(sprout::internal_begin(result), Indexes)
|
||||
)...
|
||||
);
|
||||
}
|
||||
|
@ -48,35 +48,35 @@ namespace sprout {
|
|||
first,
|
||||
last,
|
||||
result,
|
||||
typename sprout::index_range<0, sprout::fixed_container_traits<Result>::fixed_size>::type(),
|
||||
sprout::fixed_end_offset(result),
|
||||
typename sprout::index_range<0, sprout::container_traits<Result>::static_size>::type(),
|
||||
sprout::internal_end_offset(result),
|
||||
sprout::size(result),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last)
|
||||
);
|
||||
}
|
||||
template<typename BidirectionalIterator, typename Result, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type copy_backward_impl(
|
||||
BidirectionalIterator first,
|
||||
BidirectionalIterator last,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args...);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args...);
|
||||
}
|
||||
template<typename BidirectionalIterator, typename Result, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type copy_backward_impl(
|
||||
BidirectionalIterator first,
|
||||
BidirectionalIterator last,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/detail/container_complate.hpp>
|
||||
|
@ -14,29 +14,29 @@ namespace sprout {
|
|||
namespace detail {
|
||||
template<typename InputIterator, typename Result, typename Predicate, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type copy_if_impl(
|
||||
InputIterator first,
|
||||
InputIterator last,
|
||||
Result const& result,
|
||||
Predicate pred,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args...);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args...);
|
||||
}
|
||||
template<typename InputIterator, typename Result, typename Predicate, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type copy_if_impl(
|
||||
InputIterator first,
|
||||
InputIterator last,
|
||||
Result const& result,
|
||||
Predicate pred,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
#include <iterator>
|
||||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/algorithm/fixed/copy.hpp>
|
||||
|
@ -26,27 +26,27 @@ namespace sprout {
|
|||
}
|
||||
template<typename InputIterator, typename Size, typename Result, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type copy_n_impl(
|
||||
InputIterator first,
|
||||
Size n,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset,
|
||||
typename sprout::container_traits<Result>::difference_type offset,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args...);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args...);
|
||||
}
|
||||
template<typename InputIterator, typename Size, typename Result, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type copy_n_impl(
|
||||
InputIterator first,
|
||||
Size n,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset,
|
||||
typename sprout::container_traits<Result>::difference_type offset,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/index_tuple.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
|
||||
|
@ -16,16 +16,16 @@ namespace sprout {
|
|||
Container const& cont,
|
||||
T const& value,
|
||||
sprout::index_tuple<Indexes...>,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Container>::size_type size
|
||||
typename sprout::container_traits<Container>::difference_type offset,
|
||||
typename sprout::container_traits<Container>::size_type size
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Container>(
|
||||
return sprout::remake<Container>(
|
||||
cont,
|
||||
sprout::size(cont),
|
||||
(Indexes >= offset && Indexes < offset + size
|
||||
? value
|
||||
: *sprout::next(sprout::fixed_begin(cont), Indexes)
|
||||
: *sprout::next(sprout::internal_begin(cont), Indexes)
|
||||
)...
|
||||
);
|
||||
}
|
||||
|
@ -42,8 +42,8 @@ namespace sprout {
|
|||
return sprout::fixed::detail::fill_impl(
|
||||
cont,
|
||||
value,
|
||||
typename sprout::index_range<0, sprout::fixed_container_traits<Container>::fixed_size>::type(),
|
||||
sprout::fixed_begin_offset(cont),
|
||||
typename sprout::index_range<0, sprout::container_traits<Container>::static_size>::type(),
|
||||
sprout::internal_begin_offset(cont),
|
||||
sprout::size(cont)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/index_tuple.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/algorithm/fixed/fill.hpp>
|
||||
|
||||
|
@ -23,8 +23,8 @@ namespace sprout {
|
|||
return sprout::fixed::detail::fill_impl(
|
||||
cont,
|
||||
value,
|
||||
typename sprout::index_range<0, sprout::fixed_container_traits<Container>::fixed_size>::type(),
|
||||
sprout::fixed_begin_offset(cont),
|
||||
typename sprout::index_range<0, sprout::container_traits<Container>::static_size>::type(),
|
||||
sprout::internal_begin_offset(cont),
|
||||
n
|
||||
);
|
||||
}
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
#include <cstddef>
|
||||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/detail/container_complate.hpp>
|
||||
|
@ -16,7 +16,7 @@ namespace sprout {
|
|||
template<std::size_t InitSize, typename Container, typename Generator, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
InitSize == 0,
|
||||
typename sprout::fixed_container_traits<Container>::value_type
|
||||
typename sprout::container_traits<Container>::value_type
|
||||
>::type call_gen(
|
||||
Generator gen,
|
||||
Args const&... args
|
||||
|
@ -27,7 +27,7 @@ namespace sprout {
|
|||
template<std::size_t InitSize, typename Container, typename Generator, typename Head, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
InitSize != 0 && InitSize == sizeof...(Args) + 1,
|
||||
typename sprout::fixed_container_traits<Container>::value_type
|
||||
typename sprout::container_traits<Container>::value_type
|
||||
>::type call_gen(
|
||||
Generator gen,
|
||||
Head const& head,
|
||||
|
@ -39,7 +39,7 @@ namespace sprout {
|
|||
template<std::size_t InitSize, typename Container, typename Generator, typename Head, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
InitSize != 0 && InitSize != sizeof...(Args) + 1,
|
||||
typename sprout::fixed_container_traits<Container>::value_type
|
||||
typename sprout::container_traits<Container>::value_type
|
||||
>::type call_gen(
|
||||
Generator gen,
|
||||
Head const& head,
|
||||
|
@ -52,19 +52,19 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type generate_impl_drop(
|
||||
Container const& cont,
|
||||
Generator gen,
|
||||
typename sprout::fixed_container_traits<Container>::size_type size
|
||||
typename sprout::container_traits<Container>::size_type size
|
||||
)
|
||||
{
|
||||
return sprout::detail::container_complate(cont);
|
||||
}
|
||||
template<typename Container, typename Generator, typename Head, typename... Inits>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
(sprout::fixed_container_traits<Container>::fixed_size >= sizeof...(Inits) + 1),
|
||||
(sprout::container_traits<Container>::static_size >= sizeof...(Inits) + 1),
|
||||
typename sprout::fixed::result_of::algorithm<Container>::type
|
||||
>::type generate_impl_drop(
|
||||
Container const& cont,
|
||||
Generator gen,
|
||||
typename sprout::fixed_container_traits<Container>::size_type size,
|
||||
typename sprout::container_traits<Container>::size_type size,
|
||||
Head const& head,
|
||||
Inits const&... inits
|
||||
)
|
||||
|
@ -76,12 +76,12 @@ namespace sprout {
|
|||
}
|
||||
template<typename Container, typename Generator, typename Head, typename... Inits>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
(sprout::fixed_container_traits<Container>::fixed_size < sizeof...(Inits) + 1),
|
||||
(sprout::container_traits<Container>::static_size < sizeof...(Inits) + 1),
|
||||
typename sprout::fixed::result_of::algorithm<Container>::type
|
||||
>::type generate_impl_drop(
|
||||
Container const& cont,
|
||||
Generator gen,
|
||||
typename sprout::fixed_container_traits<Container>::size_type size,
|
||||
typename sprout::container_traits<Container>::size_type size,
|
||||
Head const& head,
|
||||
Inits const&... inits
|
||||
)
|
||||
|
@ -90,25 +90,25 @@ namespace sprout {
|
|||
}
|
||||
template<std::size_t InitSize, typename Container, typename Generator, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Container>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Container>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Container>::type
|
||||
>::type generate_impl_1(
|
||||
Container const& cont,
|
||||
Generator gen,
|
||||
typename sprout::fixed_container_traits<Container>::size_type size,
|
||||
typename sprout::container_traits<Container>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Container>(cont, sprout::size(cont), args...);
|
||||
return sprout::remake<Container>(cont, sprout::size(cont), args...);
|
||||
}
|
||||
template<std::size_t InitSize, typename Container, typename Generator, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Container>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Container>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Container>::type
|
||||
>::type generate_impl_1(
|
||||
Container const& cont,
|
||||
Generator gen,
|
||||
typename sprout::fixed_container_traits<Container>::size_type size,
|
||||
typename sprout::container_traits<Container>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
@ -119,12 +119,12 @@ namespace sprout {
|
|||
}
|
||||
template<typename Container, typename Generator, typename... Inits>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
(sprout::fixed_container_traits<Container>::fixed_size > sizeof...(Inits)),
|
||||
(sprout::container_traits<Container>::static_size > sizeof...(Inits)),
|
||||
typename sprout::fixed::result_of::algorithm<Container>::type
|
||||
>::type generate_impl(
|
||||
Container const& cont,
|
||||
Generator gen,
|
||||
typename sprout::fixed_container_traits<Container>::size_type size,
|
||||
typename sprout::container_traits<Container>::size_type size,
|
||||
Inits const&... inits
|
||||
)
|
||||
{
|
||||
|
@ -135,12 +135,12 @@ namespace sprout {
|
|||
}
|
||||
template<typename Container, typename Generator, typename... Inits>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
(sprout::fixed_container_traits<Container>::fixed_size <= sizeof...(Inits)),
|
||||
(sprout::container_traits<Container>::static_size <= sizeof...(Inits)),
|
||||
typename sprout::fixed::result_of::algorithm<Container>::type
|
||||
>::type generate_impl(
|
||||
Container const& cont,
|
||||
Generator gen,
|
||||
typename sprout::fixed_container_traits<Container>::size_type size,
|
||||
typename sprout::container_traits<Container>::size_type size,
|
||||
Inits const&... inits
|
||||
)
|
||||
{
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#define SPROUT_ALGORITHM_FIXED_GENERATE_N_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/algorithm/fixed/generate.hpp>
|
||||
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIXED_INPLACE_MERGE_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/algorithm/fixed/merge.hpp>
|
||||
|
||||
|
@ -15,7 +15,7 @@ namespace sprout {
|
|||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type inplace_merge(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator middle,
|
||||
typename sprout::container_traits<Container>::const_iterator middle,
|
||||
Compare comp
|
||||
)
|
||||
{
|
||||
|
@ -34,7 +34,7 @@ namespace sprout {
|
|||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type inplace_merge(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator middle
|
||||
typename sprout::container_traits<Container>::const_iterator middle
|
||||
)
|
||||
{
|
||||
return sprout::fixed::merge(
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIXED_MAKE_HEAP_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/swap_element.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
|
@ -16,30 +16,30 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type make_heap_impl(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type size,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type n = 0,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type l = 1,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type r = 2
|
||||
typename sprout::container_traits<Container>::difference_type offset,
|
||||
typename sprout::container_traits<Container>::difference_type size,
|
||||
typename sprout::container_traits<Container>::difference_type n = 0,
|
||||
typename sprout::container_traits<Container>::difference_type l = 1,
|
||||
typename sprout::container_traits<Container>::difference_type r = 2
|
||||
);
|
||||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type make_heap_impl_1(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type size,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type n,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type l,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type r
|
||||
typename sprout::container_traits<Container>::difference_type offset,
|
||||
typename sprout::container_traits<Container>::difference_type size,
|
||||
typename sprout::container_traits<Container>::difference_type n,
|
||||
typename sprout::container_traits<Container>::difference_type l,
|
||||
typename sprout::container_traits<Container>::difference_type r
|
||||
)
|
||||
{
|
||||
return comp(*sprout::next(sprout::fixed_begin(cont), offset + l), *sprout::next(sprout::fixed_begin(cont), offset + r))
|
||||
? comp(*sprout::next(sprout::fixed_begin(cont), offset + n), *sprout::next(sprout::fixed_begin(cont), offset + r))
|
||||
return comp(*sprout::next(sprout::internal_begin(cont), offset + l), *sprout::next(sprout::internal_begin(cont), offset + r))
|
||||
? comp(*sprout::next(sprout::internal_begin(cont), offset + n), *sprout::next(sprout::internal_begin(cont), offset + r))
|
||||
? sprout::fixed::detail::make_heap_impl(
|
||||
sprout::fixed::swap_element(
|
||||
cont,
|
||||
sprout::next(sprout::fixed_begin(cont), offset + n),
|
||||
sprout::next(sprout::fixed_begin(cont), offset + r)
|
||||
sprout::next(sprout::internal_begin(cont), offset + n),
|
||||
sprout::next(sprout::internal_begin(cont), offset + r)
|
||||
),
|
||||
comp,
|
||||
offset,
|
||||
|
@ -48,13 +48,13 @@ namespace sprout {
|
|||
r * 2 + 1,
|
||||
r * 2 + 2
|
||||
)
|
||||
: sprout::clone(cont)
|
||||
: comp(*sprout::next(sprout::fixed_begin(cont), offset + n), *sprout::next(sprout::fixed_begin(cont), offset + l))
|
||||
: sprout::deep_copy(cont)
|
||||
: comp(*sprout::next(sprout::internal_begin(cont), offset + n), *sprout::next(sprout::internal_begin(cont), offset + l))
|
||||
? sprout::fixed::detail::make_heap_impl(
|
||||
sprout::fixed::swap_element(
|
||||
cont,
|
||||
sprout::next(sprout::fixed_begin(cont), offset + n),
|
||||
sprout::next(sprout::fixed_begin(cont), offset + l)
|
||||
sprout::next(sprout::internal_begin(cont), offset + n),
|
||||
sprout::next(sprout::internal_begin(cont), offset + l)
|
||||
),
|
||||
comp,
|
||||
offset,
|
||||
|
@ -63,30 +63,30 @@ namespace sprout {
|
|||
l * 2 + 1,
|
||||
l * 2 + 2
|
||||
)
|
||||
: sprout::clone(cont)
|
||||
: sprout::deep_copy(cont)
|
||||
;
|
||||
}
|
||||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type make_heap_impl(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type size,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type n,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type l,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type r
|
||||
typename sprout::container_traits<Container>::difference_type offset,
|
||||
typename sprout::container_traits<Container>::difference_type size,
|
||||
typename sprout::container_traits<Container>::difference_type n,
|
||||
typename sprout::container_traits<Container>::difference_type l,
|
||||
typename sprout::container_traits<Container>::difference_type r
|
||||
)
|
||||
{
|
||||
return r > size
|
||||
? sprout::clone(cont)
|
||||
? sprout::deep_copy(cont)
|
||||
: r == size
|
||||
? comp(*sprout::next(sprout::fixed_begin(cont), offset + n), *sprout::next(sprout::fixed_begin(cont), offset + l))
|
||||
? comp(*sprout::next(sprout::internal_begin(cont), offset + n), *sprout::next(sprout::internal_begin(cont), offset + l))
|
||||
? sprout::fixed::swap_element(
|
||||
cont,
|
||||
sprout::next(sprout::fixed_begin(cont), offset + n),
|
||||
sprout::next(sprout::fixed_begin(cont), offset + l)
|
||||
sprout::next(sprout::internal_begin(cont), offset + n),
|
||||
sprout::next(sprout::internal_begin(cont), offset + l)
|
||||
)
|
||||
: sprout::clone(cont)
|
||||
: sprout::deep_copy(cont)
|
||||
: sprout::fixed::detail::make_heap_impl_1(
|
||||
sprout::fixed::detail::make_heap_impl(
|
||||
sprout::fixed::detail::make_heap_impl(cont, comp, offset, size, l, l * 2 + 1, l * 2 + 2),
|
||||
|
@ -119,7 +119,7 @@ namespace sprout {
|
|||
return sprout::fixed::detail::make_heap_impl(
|
||||
cont,
|
||||
comp,
|
||||
sprout::fixed_begin_offset(cont),
|
||||
sprout::internal_begin_offset(cont),
|
||||
sprout::size(cont)
|
||||
);
|
||||
}
|
||||
|
@ -133,8 +133,8 @@ namespace sprout {
|
|||
{
|
||||
return sprout::fixed::detail::make_heap_impl(
|
||||
cont,
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::fixed_container_traits<Container>::value_type>(),
|
||||
sprout::fixed_begin_offset(cont),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::container_traits<Container>::value_type>(),
|
||||
sprout::internal_begin_offset(cont),
|
||||
sprout::size(cont)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIXED_MAKE_PARTIAL_HEAP_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/algorithm/fixed/swap_element.hpp>
|
||||
|
@ -19,20 +19,20 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type make_partial_heap_impl_1(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type size,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type middle_size,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type n
|
||||
typename sprout::container_traits<Container>::difference_type offset,
|
||||
typename sprout::container_traits<Container>::difference_type size,
|
||||
typename sprout::container_traits<Container>::difference_type middle_size,
|
||||
typename sprout::container_traits<Container>::difference_type n
|
||||
)
|
||||
{
|
||||
return n < size
|
||||
? comp(*sprout::next(sprout::fixed_begin(cont), offset + n), *sprout::next(sprout::fixed_begin(cont), offset))
|
||||
? comp(*sprout::next(sprout::internal_begin(cont), offset + n), *sprout::next(sprout::internal_begin(cont), offset))
|
||||
? sprout::fixed::detail::make_partial_heap_impl_1(
|
||||
sprout::fixed::detail::pop_heap_impl(
|
||||
sprout::fixed::swap_element(
|
||||
cont,
|
||||
sprout::next(sprout::fixed_begin(cont), offset + n),
|
||||
sprout::next(sprout::fixed_begin(cont), offset)
|
||||
sprout::next(sprout::internal_begin(cont), offset + n),
|
||||
sprout::next(sprout::internal_begin(cont), offset)
|
||||
),
|
||||
comp,
|
||||
offset,
|
||||
|
@ -45,16 +45,16 @@ namespace sprout {
|
|||
n + 1
|
||||
)
|
||||
: sprout::fixed::detail::make_partial_heap_impl_1(cont, comp, offset, size, middle_size, n + 1)
|
||||
: sprout::clone(cont)
|
||||
: sprout::deep_copy(cont)
|
||||
;
|
||||
}
|
||||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type make_partial_heap_impl(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type size,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type middle_size
|
||||
typename sprout::container_traits<Container>::difference_type offset,
|
||||
typename sprout::container_traits<Container>::difference_type size,
|
||||
typename sprout::container_traits<Container>::difference_type middle_size
|
||||
)
|
||||
{
|
||||
return sprout::fixed::detail::make_partial_heap_impl_1(
|
||||
|
@ -73,14 +73,14 @@ namespace sprout {
|
|||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type make_partial_heap(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator middle,
|
||||
typename sprout::container_traits<Container>::const_iterator middle,
|
||||
Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::fixed::detail::make_partial_heap_impl(
|
||||
cont,
|
||||
comp,
|
||||
sprout::fixed_begin_offset(cont),
|
||||
sprout::internal_begin_offset(cont),
|
||||
sprout::size(cont),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), middle)
|
||||
);
|
||||
|
@ -91,13 +91,13 @@ namespace sprout {
|
|||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type make_partial_heap(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator middle
|
||||
typename sprout::container_traits<Container>::const_iterator middle
|
||||
)
|
||||
{
|
||||
return sprout::fixed::detail::make_partial_heap_impl(
|
||||
cont,
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::fixed_container_traits<Container>::value_type>(),
|
||||
sprout::fixed_begin_offset(cont),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::container_traits<Container>::value_type>(),
|
||||
sprout::internal_begin_offset(cont),
|
||||
sprout::size(cont),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), middle)
|
||||
);
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/detail/container_complate.hpp>
|
||||
|
@ -15,7 +15,7 @@ namespace sprout {
|
|||
namespace detail {
|
||||
template<typename InputIterator1, typename InputIterator2, typename Result, typename Compare, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type merge_impl(
|
||||
InputIterator1 first1,
|
||||
|
@ -24,15 +24,15 @@ namespace sprout {
|
|||
InputIterator2 last2,
|
||||
Result const& result,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args...);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args...);
|
||||
}
|
||||
template<typename InputIterator1, typename InputIterator2, typename Result, typename Compare, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type merge_impl(
|
||||
InputIterator1 first1,
|
||||
|
@ -41,7 +41,7 @@ namespace sprout {
|
|||
InputIterator2 last2,
|
||||
Result const& result,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
@ -100,7 +100,7 @@ namespace sprout {
|
|||
first2,
|
||||
last2,
|
||||
result,
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::fixed_container_traits<Result>::value_type>(),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::container_traits<Result>::value_type>(),
|
||||
sprout::size(result)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIXED_NTH_ELEMENT_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/algorithm/fixed/swap_element.hpp>
|
||||
|
@ -17,23 +17,23 @@ namespace sprout {
|
|||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type nth_element_impl_1(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type nth_size
|
||||
typename sprout::container_traits<Container>::difference_type offset,
|
||||
typename sprout::container_traits<Container>::difference_type nth_size
|
||||
)
|
||||
{
|
||||
return sprout::fixed::swap_element(
|
||||
cont,
|
||||
sprout::next(sprout::fixed_begin(cont), offset),
|
||||
sprout::next(sprout::fixed_begin(cont), offset + nth_size)
|
||||
sprout::next(sprout::internal_begin(cont), offset),
|
||||
sprout::next(sprout::internal_begin(cont), offset + nth_size)
|
||||
);
|
||||
}
|
||||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type nth_element_impl(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type size,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type nth_size
|
||||
typename sprout::container_traits<Container>::difference_type offset,
|
||||
typename sprout::container_traits<Container>::difference_type size,
|
||||
typename sprout::container_traits<Container>::difference_type nth_size
|
||||
)
|
||||
{
|
||||
return sprout::fixed::detail::nth_element_impl_1(
|
||||
|
@ -49,14 +49,14 @@ namespace sprout {
|
|||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type nth_element(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator nth,
|
||||
typename sprout::container_traits<Container>::const_iterator nth,
|
||||
Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::fixed::detail::nth_element_impl(
|
||||
cont,
|
||||
comp,
|
||||
sprout::fixed_begin_offset(cont),
|
||||
sprout::internal_begin_offset(cont),
|
||||
sprout::size(cont),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), nth)
|
||||
);
|
||||
|
@ -67,13 +67,13 @@ namespace sprout {
|
|||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type nth_element(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator nth
|
||||
typename sprout::container_traits<Container>::const_iterator nth
|
||||
)
|
||||
{
|
||||
return sprout::fixed::detail::nth_element_impl(
|
||||
cont,
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::fixed_container_traits<Container>::value_type>(),
|
||||
sprout::fixed_begin_offset(cont),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::container_traits<Container>::value_type>(),
|
||||
sprout::internal_begin_offset(cont),
|
||||
sprout::size(cont),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), nth)
|
||||
);
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIXED_PARTIAL_SORT_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/algorithm/fixed/make_partial_heap.hpp>
|
||||
#include <sprout/algorithm/fixed/sort_heap.hpp>
|
||||
|
@ -17,9 +17,9 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type partial_sort_impl(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type size,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type middle_size
|
||||
typename sprout::container_traits<Container>::difference_type offset,
|
||||
typename sprout::container_traits<Container>::difference_type size,
|
||||
typename sprout::container_traits<Container>::difference_type middle_size
|
||||
)
|
||||
{
|
||||
return sprout::fixed::detail::sort_heap_impl(
|
||||
|
@ -36,14 +36,14 @@ namespace sprout {
|
|||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type partial_sort(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator middle,
|
||||
typename sprout::container_traits<Container>::const_iterator middle,
|
||||
Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::fixed::detail::partial_sort_impl(
|
||||
cont,
|
||||
comp,
|
||||
sprout::fixed_begin_offset(cont),
|
||||
sprout::internal_begin_offset(cont),
|
||||
sprout::size(cont),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), middle)
|
||||
);
|
||||
|
@ -54,13 +54,13 @@ namespace sprout {
|
|||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type partial_sort(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator middle
|
||||
typename sprout::container_traits<Container>::const_iterator middle
|
||||
)
|
||||
{
|
||||
return sprout::fixed::detail::partial_sort_impl(
|
||||
cont,
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::fixed_container_traits<Container>::value_type>(),
|
||||
sprout::fixed_begin_offset(cont),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::container_traits<Container>::value_type>(),
|
||||
sprout::internal_begin_offset(cont),
|
||||
sprout::size(cont),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), middle)
|
||||
);
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIXED_PARTITION_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/algorithm/fixed/partition_copy.hpp>
|
||||
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/detail/container_complate.hpp>
|
||||
|
@ -14,29 +14,29 @@ namespace sprout {
|
|||
namespace detail {
|
||||
template<typename InputIterator, typename Result, typename Predicate, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type partition_copy_impl(
|
||||
InputIterator first,
|
||||
InputIterator last,
|
||||
Result const& result,
|
||||
Predicate pred,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args...);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args...);
|
||||
}
|
||||
template<typename InputIterator, typename Result, typename Predicate, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type partition_copy_impl(
|
||||
InputIterator first,
|
||||
InputIterator last,
|
||||
Result const& result,
|
||||
Predicate pred,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIXED_POP_HEAP_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/algorithm/fixed/swap_element.hpp>
|
||||
|
@ -16,20 +16,20 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type pop_heap_impl(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type size,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type n = 0,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type l = 1,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type r = 2
|
||||
typename sprout::container_traits<Container>::difference_type offset,
|
||||
typename sprout::container_traits<Container>::difference_type size,
|
||||
typename sprout::container_traits<Container>::difference_type n = 0,
|
||||
typename sprout::container_traits<Container>::difference_type l = 1,
|
||||
typename sprout::container_traits<Container>::difference_type r = 2
|
||||
)
|
||||
{
|
||||
return r < size && comp(*sprout::next(sprout::fixed_begin(cont), offset + l), *sprout::next(sprout::fixed_begin(cont), offset + r))
|
||||
? comp(*sprout::next(sprout::fixed_begin(cont), offset + n), *sprout::next(sprout::fixed_begin(cont), offset + r))
|
||||
return r < size && comp(*sprout::next(sprout::internal_begin(cont), offset + l), *sprout::next(sprout::internal_begin(cont), offset + r))
|
||||
? comp(*sprout::next(sprout::internal_begin(cont), offset + n), *sprout::next(sprout::internal_begin(cont), offset + r))
|
||||
? sprout::fixed::detail::pop_heap_impl(
|
||||
sprout::fixed::swap_element(
|
||||
cont,
|
||||
sprout::next(sprout::fixed_begin(cont), offset + n),
|
||||
sprout::next(sprout::fixed_begin(cont), offset + r)
|
||||
sprout::next(sprout::internal_begin(cont), offset + n),
|
||||
sprout::next(sprout::internal_begin(cont), offset + r)
|
||||
),
|
||||
comp,
|
||||
offset,
|
||||
|
@ -38,14 +38,14 @@ namespace sprout {
|
|||
r * 2 + 1,
|
||||
r * 2 + 2
|
||||
)
|
||||
: sprout::clone(cont)
|
||||
: sprout::deep_copy(cont)
|
||||
: l < size
|
||||
? comp(*sprout::next(sprout::fixed_begin(cont), offset + n), *sprout::next(sprout::fixed_begin(cont), offset + l))
|
||||
? comp(*sprout::next(sprout::internal_begin(cont), offset + n), *sprout::next(sprout::internal_begin(cont), offset + l))
|
||||
? sprout::fixed::detail::pop_heap_impl(
|
||||
sprout::fixed::swap_element(
|
||||
cont,
|
||||
sprout::next(sprout::fixed_begin(cont), offset + n),
|
||||
sprout::next(sprout::fixed_begin(cont), offset + l)
|
||||
sprout::next(sprout::internal_begin(cont), offset + n),
|
||||
sprout::next(sprout::internal_begin(cont), offset + l)
|
||||
),
|
||||
comp,
|
||||
offset,
|
||||
|
@ -54,8 +54,8 @@ namespace sprout {
|
|||
l * 2 + 1,
|
||||
l * 2 + 2
|
||||
)
|
||||
: sprout::clone(cont)
|
||||
: sprout::clone(cont)
|
||||
: sprout::deep_copy(cont)
|
||||
: sprout::deep_copy(cont)
|
||||
;
|
||||
}
|
||||
} // namespace detail
|
||||
|
@ -71,7 +71,7 @@ namespace sprout {
|
|||
return sprout::fixed::detail::pop_heap_impl(
|
||||
sprout::fixed::swap_element(cont, sprout::begin(cont), sprout::end(cont) - 1),
|
||||
comp,
|
||||
sprout::fixed_begin_offset(cont),
|
||||
sprout::internal_begin_offset(cont),
|
||||
sprout::size(cont) - 1
|
||||
);
|
||||
}
|
||||
|
@ -85,8 +85,8 @@ namespace sprout {
|
|||
{
|
||||
return sprout::fixed::detail::pop_heap_impl(
|
||||
sprout::fixed::swap_element(cont, sprout::begin(cont), sprout::end(cont) - 1),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::fixed_container_traits<Container>::value_type>(),
|
||||
sprout::fixed_begin_offset(cont),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::container_traits<Container>::value_type>(),
|
||||
sprout::internal_begin_offset(cont),
|
||||
sprout::size(cont) - 1
|
||||
);
|
||||
}
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIXED_PUSH_HEAP_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/algorithm/fixed/swap_element.hpp>
|
||||
|
@ -16,22 +16,22 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type push_heap_impl(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type n
|
||||
typename sprout::container_traits<Container>::difference_type offset,
|
||||
typename sprout::container_traits<Container>::difference_type n
|
||||
)
|
||||
{
|
||||
return n != 0 && comp(*sprout::next(sprout::fixed_begin(cont), offset + (n - 1) / 2), *sprout::next(sprout::fixed_begin(cont), offset + n))
|
||||
return n != 0 && comp(*sprout::next(sprout::internal_begin(cont), offset + (n - 1) / 2), *sprout::next(sprout::internal_begin(cont), offset + n))
|
||||
? sprout::fixed::detail::push_heap_impl(
|
||||
sprout::fixed::swap_element(
|
||||
cont,
|
||||
sprout::next(sprout::fixed_begin(cont), offset + (n - 1) / 2),
|
||||
sprout::next(sprout::fixed_begin(cont), offset + n)
|
||||
sprout::next(sprout::internal_begin(cont), offset + (n - 1) / 2),
|
||||
sprout::next(sprout::internal_begin(cont), offset + n)
|
||||
),
|
||||
comp,
|
||||
offset,
|
||||
(n - 1) / 2
|
||||
)
|
||||
: sprout::clone(cont)
|
||||
: sprout::deep_copy(cont)
|
||||
;
|
||||
}
|
||||
} // namespace detail
|
||||
|
@ -47,7 +47,7 @@ namespace sprout {
|
|||
return sprout::fixed::detail::push_heap_impl(
|
||||
cont,
|
||||
comp,
|
||||
sprout::fixed_begin_offset(cont),
|
||||
sprout::internal_begin_offset(cont),
|
||||
sprout::size(cont) - 1
|
||||
);
|
||||
}
|
||||
|
@ -61,8 +61,8 @@ namespace sprout {
|
|||
{
|
||||
return sprout::fixed::detail::push_heap_impl(
|
||||
cont,
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::fixed_container_traits<Container>::value_type>(),
|
||||
sprout::fixed_begin_offset(cont),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::container_traits<Container>::value_type>(),
|
||||
sprout::internal_begin_offset(cont),
|
||||
sprout::size(cont) - 1
|
||||
);
|
||||
}
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIXED_REMOVE_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/algorithm/fixed/remove_copy.hpp>
|
||||
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/detail/container_complate.hpp>
|
||||
|
@ -14,29 +14,29 @@ namespace sprout {
|
|||
namespace detail {
|
||||
template<typename InputIterator, typename Result, typename T, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type remove_copy_impl(
|
||||
InputIterator first,
|
||||
InputIterator last,
|
||||
Result const& result,
|
||||
T const& value,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args...);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args...);
|
||||
}
|
||||
template<typename InputIterator, typename Result, typename T, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type remove_copy_impl(
|
||||
InputIterator first,
|
||||
InputIterator last,
|
||||
Result const& result,
|
||||
T const& value,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/detail/container_complate.hpp>
|
||||
|
@ -14,29 +14,29 @@ namespace sprout {
|
|||
namespace detail {
|
||||
template<typename InputIterator, typename Result, typename Predicate, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type remove_copy_if_impl(
|
||||
InputIterator first,
|
||||
InputIterator last,
|
||||
Result const& result,
|
||||
Predicate pred,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args...);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args...);
|
||||
}
|
||||
template<typename InputIterator, typename Result, typename Predicate, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type remove_copy_if_impl(
|
||||
InputIterator first,
|
||||
InputIterator last,
|
||||
Result const& result,
|
||||
Predicate pred,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIXED_REMOVE_IF_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/algorithm/fixed/remove_copy_if.hpp>
|
||||
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIXED_REPLACE_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/algorithm/fixed/replace_copy.hpp>
|
||||
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/index_tuple.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/detail/container_complate.hpp>
|
||||
|
@ -24,17 +24,17 @@ namespace sprout {
|
|||
T const& old_value,
|
||||
T const& new_value,
|
||||
sprout::index_tuple<Indexes...>,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::fixed_container_traits<Result>::size_type input_size
|
||||
typename sprout::container_traits<Result>::difference_type offset,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type input_size
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(
|
||||
return sprout::remake<Result>(
|
||||
result,
|
||||
sprout::size(result),
|
||||
(Indexes >= offset && Indexes < offset + size && Indexes < offset + input_size
|
||||
? NS_SSCRISK_CEL_OR_SPROUT_DETAIL::equal_to<T>()(*sprout::next(first, Indexes - offset), old_value) ? new_value : *sprout::next(first, Indexes - offset)
|
||||
: *sprout::next(sprout::fixed_begin(result), Indexes)
|
||||
: *sprout::next(sprout::internal_begin(result), Indexes)
|
||||
)...
|
||||
);
|
||||
}
|
||||
|
@ -54,15 +54,15 @@ namespace sprout {
|
|||
result,
|
||||
old_value,
|
||||
new_value,
|
||||
typename sprout::index_range<0, sprout::fixed_container_traits<Result>::fixed_size>::type(),
|
||||
sprout::fixed_begin_offset(result),
|
||||
typename sprout::index_range<0, sprout::container_traits<Result>::static_size>::type(),
|
||||
sprout::internal_begin_offset(result),
|
||||
sprout::size(result),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last)
|
||||
);
|
||||
}
|
||||
template<typename InputIterator, typename Result, typename T, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type replace_copy_impl(
|
||||
InputIterator first,
|
||||
|
@ -70,15 +70,15 @@ namespace sprout {
|
|||
Result const& result,
|
||||
T const& old_value,
|
||||
T const& new_value,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args...);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args...);
|
||||
}
|
||||
template<typename InputIterator, typename Result, typename T, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type replace_copy_impl(
|
||||
InputIterator first,
|
||||
|
@ -86,7 +86,7 @@ namespace sprout {
|
|||
Result const& result,
|
||||
T const& old_value,
|
||||
T const& new_value,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/index_tuple.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/detail/container_complate.hpp>
|
||||
|
@ -23,17 +23,17 @@ namespace sprout {
|
|||
Predicate pred,
|
||||
T const& new_value,
|
||||
sprout::index_tuple<Indexes...>,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::fixed_container_traits<Result>::size_type input_size
|
||||
typename sprout::container_traits<Result>::difference_type offset,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type input_size
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(
|
||||
return sprout::remake<Result>(
|
||||
result,
|
||||
sprout::size(result),
|
||||
(Indexes >= offset && Indexes < offset + size && Indexes < offset + input_size
|
||||
? pred(*sprout::next(first, Indexes - offset)) ? new_value : *sprout::next(first, Indexes - offset)
|
||||
: *sprout::next(sprout::fixed_begin(result), Indexes)
|
||||
: *sprout::next(sprout::internal_begin(result), Indexes)
|
||||
)...
|
||||
);
|
||||
}
|
||||
|
@ -53,15 +53,15 @@ namespace sprout {
|
|||
result,
|
||||
pred,
|
||||
new_value,
|
||||
typename sprout::index_range<0, sprout::fixed_container_traits<Result>::fixed_size>::type(),
|
||||
sprout::fixed_begin_offset(result),
|
||||
typename sprout::index_range<0, sprout::container_traits<Result>::static_size>::type(),
|
||||
sprout::internal_begin_offset(result),
|
||||
sprout::size(result),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last)
|
||||
);
|
||||
}
|
||||
template<typename InputIterator, typename Result, typename T, typename Predicate, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type replace_copy_if_impl(
|
||||
InputIterator first,
|
||||
|
@ -69,15 +69,15 @@ namespace sprout {
|
|||
Result const& result,
|
||||
Predicate pred,
|
||||
T const& new_value,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args...);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args...);
|
||||
}
|
||||
template<typename InputIterator, typename Result, typename T, typename Predicate, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type replace_copy_if_impl(
|
||||
InputIterator first,
|
||||
|
@ -85,7 +85,7 @@ namespace sprout {
|
|||
Result const& result,
|
||||
Predicate pred,
|
||||
T const& new_value,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIXED_REPLACE_IF_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/algorithm/fixed/replace_copy_if.hpp>
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#define SPROUT_ALGORITHM_FIXED_RESULT_OF_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
|
||||
namespace sprout {
|
||||
namespace fixed {
|
||||
|
@ -13,7 +13,7 @@ namespace sprout {
|
|||
template<typename Result>
|
||||
struct algorithm {
|
||||
public:
|
||||
typedef typename sprout::fixed_container_traits<Result>::clone_type type;
|
||||
typedef typename sprout::container_construct_traits<Result>::copied_type type;
|
||||
};
|
||||
} // namespace result_of
|
||||
} // namespace fixed
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIXED_REVERSE_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/algorithm/fixed/reverse_copy.hpp>
|
||||
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/index_tuple.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/detail/container_complate.hpp>
|
||||
|
@ -21,17 +21,17 @@ namespace sprout {
|
|||
RandomAccessIterator last,
|
||||
Result const& result,
|
||||
sprout::index_tuple<Indexes...>,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::fixed_container_traits<Result>::size_type input_size
|
||||
typename sprout::container_traits<Result>::difference_type offset,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type input_size
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(
|
||||
return sprout::remake<Result>(
|
||||
result,
|
||||
sprout::size(result),
|
||||
(Indexes >= offset && Indexes < offset + size && Indexes < offset + input_size
|
||||
? *sprout::prev(last, 1 + Indexes - offset)
|
||||
: *sprout::next(sprout::fixed_begin(result), Indexes)
|
||||
: *sprout::next(sprout::internal_begin(result), Indexes)
|
||||
)...
|
||||
);
|
||||
}
|
||||
|
@ -47,35 +47,35 @@ namespace sprout {
|
|||
first,
|
||||
last,
|
||||
result,
|
||||
typename sprout::index_range<0, sprout::fixed_container_traits<Result>::fixed_size>::type(),
|
||||
sprout::fixed_begin_offset(result),
|
||||
typename sprout::index_range<0, sprout::container_traits<Result>::static_size>::type(),
|
||||
sprout::internal_begin_offset(result),
|
||||
sprout::size(result),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last)
|
||||
);
|
||||
}
|
||||
template<typename BidirectionalIterator, typename Result, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type reverse_copy_impl(
|
||||
BidirectionalIterator first,
|
||||
BidirectionalIterator last,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args...);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args...);
|
||||
}
|
||||
template<typename BidirectionalIterator, typename Result, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type reverse_copy_impl(
|
||||
BidirectionalIterator first,
|
||||
BidirectionalIterator last,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIXED_ROTATE_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/algorithm/fixed/rotate_copy.hpp>
|
||||
|
||||
|
@ -15,7 +15,7 @@ namespace sprout {
|
|||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type rotate(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator middle
|
||||
typename sprout::container_traits<Container>::const_iterator middle
|
||||
)
|
||||
{
|
||||
return sprout::fixed::rotate_copy(sprout::begin(cont), middle, sprout::end(cont), cont);
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/index_tuple.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/detail/container_complate.hpp>
|
||||
|
@ -22,12 +22,12 @@ namespace sprout {
|
|||
RandomAccessIterator last,
|
||||
Result const& result,
|
||||
sprout::index_tuple<Indexes...>,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::fixed_container_traits<Result>::size_type input_size
|
||||
typename sprout::container_traits<Result>::difference_type offset,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type input_size
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(
|
||||
return sprout::remake<Result>(
|
||||
result,
|
||||
sprout::size(result),
|
||||
(Indexes >= offset && Indexes < offset + size && Indexes < offset + input_size
|
||||
|
@ -35,7 +35,7 @@ namespace sprout {
|
|||
? *sprout::next(middle, Indexes - offset)
|
||||
: *sprout::prev(sprout::next(first, Indexes - offset), NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, middle))
|
||||
)
|
||||
: *sprout::next(sprout::fixed_begin(result), Indexes)
|
||||
: *sprout::next(sprout::internal_begin(result), Indexes)
|
||||
)...
|
||||
);
|
||||
}
|
||||
|
@ -53,35 +53,35 @@ namespace sprout {
|
|||
middle,
|
||||
last,
|
||||
result,
|
||||
typename sprout::index_range<0, sprout::fixed_container_traits<Result>::fixed_size>::type(),
|
||||
sprout::fixed_begin_offset(result),
|
||||
typename sprout::index_range<0, sprout::container_traits<Result>::static_size>::type(),
|
||||
sprout::internal_begin_offset(result),
|
||||
sprout::size(result),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last)
|
||||
);
|
||||
}
|
||||
template<typename ForwardIterator, typename Result, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type rotate_copy_impl_1(
|
||||
ForwardIterator first,
|
||||
ForwardIterator last,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args...);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args...);
|
||||
}
|
||||
template<typename ForwardIterator, typename Result, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type rotate_copy_impl_1(
|
||||
ForwardIterator first,
|
||||
ForwardIterator last,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
@ -92,7 +92,7 @@ namespace sprout {
|
|||
}
|
||||
template<typename ForwardIterator, typename Result, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type rotate_copy_impl(
|
||||
ForwardIterator first,
|
||||
|
@ -100,15 +100,15 @@ namespace sprout {
|
|||
ForwardIterator middle_first,
|
||||
ForwardIterator last,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args...);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args...);
|
||||
}
|
||||
template<typename ForwardIterator, typename Result, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type rotate_copy_impl(
|
||||
ForwardIterator first,
|
||||
|
@ -116,7 +116,7 @@ namespace sprout {
|
|||
ForwardIterator middle_first,
|
||||
ForwardIterator last,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/detail/container_complate.hpp>
|
||||
|
@ -15,7 +15,7 @@ namespace sprout {
|
|||
namespace detail {
|
||||
template<typename InputIterator1, typename InputIterator2, typename Result, typename Compare, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type set_difference_impl(
|
||||
InputIterator1 first1,
|
||||
|
@ -24,15 +24,15 @@ namespace sprout {
|
|||
InputIterator2 last2,
|
||||
Result const& result,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args...);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args...);
|
||||
}
|
||||
template<typename InputIterator1, typename InputIterator2, typename Result, typename Compare, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type set_difference_impl(
|
||||
InputIterator1 first1,
|
||||
|
@ -41,7 +41,7 @@ namespace sprout {
|
|||
InputIterator2 last2,
|
||||
Result const& result,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
@ -102,7 +102,7 @@ namespace sprout {
|
|||
first2,
|
||||
last2,
|
||||
result,
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::fixed_container_traits<Result>::value_type>(),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::container_traits<Result>::value_type>(),
|
||||
sprout::size(result)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/detail/container_complate.hpp>
|
||||
|
@ -15,7 +15,7 @@ namespace sprout {
|
|||
namespace detail {
|
||||
template<typename InputIterator1, typename InputIterator2, typename Result, typename Compare, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type set_intersection_impl(
|
||||
InputIterator1 first1,
|
||||
|
@ -24,15 +24,15 @@ namespace sprout {
|
|||
InputIterator2 last2,
|
||||
Result const& result,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args...);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args...);
|
||||
}
|
||||
template<typename InputIterator1, typename InputIterator2, typename Result, typename Compare, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type set_intersection_impl(
|
||||
InputIterator1 first1,
|
||||
|
@ -41,7 +41,7 @@ namespace sprout {
|
|||
InputIterator2 last2,
|
||||
Result const& result,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
@ -102,7 +102,7 @@ namespace sprout {
|
|||
first2,
|
||||
last2,
|
||||
result,
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::fixed_container_traits<Result>::value_type>(),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::container_traits<Result>::value_type>(),
|
||||
sprout::size(result)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/detail/container_complate.hpp>
|
||||
|
@ -15,7 +15,7 @@ namespace sprout {
|
|||
namespace detail {
|
||||
template<typename InputIterator1, typename InputIterator2, typename Result, typename Compare, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type set_symmetric_difference_impl(
|
||||
InputIterator1 first1,
|
||||
|
@ -24,15 +24,15 @@ namespace sprout {
|
|||
InputIterator2 last2,
|
||||
Result const& result,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args...);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args...);
|
||||
}
|
||||
template<typename InputIterator1, typename InputIterator2, typename Result, typename Compare, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type set_symmetric_difference_impl(
|
||||
InputIterator1 first1,
|
||||
|
@ -41,7 +41,7 @@ namespace sprout {
|
|||
InputIterator2 last2,
|
||||
Result const& result,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
@ -102,7 +102,7 @@ namespace sprout {
|
|||
first2,
|
||||
last2,
|
||||
result,
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::fixed_container_traits<Result>::value_type>(),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::container_traits<Result>::value_type>(),
|
||||
sprout::size(result)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/detail/container_complate.hpp>
|
||||
|
@ -15,7 +15,7 @@ namespace sprout {
|
|||
namespace detail {
|
||||
template<typename InputIterator1, typename InputIterator2, typename Result, typename Compare, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type set_union_impl(
|
||||
InputIterator1 first1,
|
||||
|
@ -24,15 +24,15 @@ namespace sprout {
|
|||
InputIterator2 last2,
|
||||
Result const& result,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args...);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args...);
|
||||
}
|
||||
template<typename InputIterator1, typename InputIterator2, typename Result, typename Compare, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type set_union_impl(
|
||||
InputIterator1 first1,
|
||||
|
@ -41,7 +41,7 @@ namespace sprout {
|
|||
InputIterator2 last2,
|
||||
Result const& result,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
@ -102,7 +102,7 @@ namespace sprout {
|
|||
first2,
|
||||
last2,
|
||||
result,
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::fixed_container_traits<Result>::value_type>(),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::container_traits<Result>::value_type>(),
|
||||
sprout::size(result)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
#include <sprout/index_tuple.hpp>
|
||||
#include <sprout/array.hpp>
|
||||
#include <sprout/pit.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/utility/forward.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
|
@ -59,16 +59,16 @@ namespace sprout {
|
|||
Container const& cont,
|
||||
sprout::index_tuple<Indexes...>,
|
||||
Shuffled const& shuffled,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Container>::size_type size
|
||||
typename sprout::container_traits<Container>::difference_type offset,
|
||||
typename sprout::container_traits<Container>::size_type size
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Container>(
|
||||
return sprout::remake<Container>(
|
||||
cont,
|
||||
sprout::size(cont),
|
||||
(Indexes >= offset && Indexes < offset + size
|
||||
? *sprout::next(sprout::begin(cont), shuffled[Indexes - offset])
|
||||
: *sprout::next(sprout::fixed_begin(cont), Indexes)
|
||||
: *sprout::next(sprout::internal_begin(cont), Indexes)
|
||||
)...
|
||||
);
|
||||
}
|
||||
|
@ -77,14 +77,14 @@ namespace sprout {
|
|||
Container const& cont,
|
||||
sprout::index_tuple<Indexes...> indexes,
|
||||
UniformRandomNumberGenerator&& g,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Container>::size_type size
|
||||
typename sprout::container_traits<Container>::difference_type offset,
|
||||
typename sprout::container_traits<Container>::size_type size
|
||||
)
|
||||
{
|
||||
return sprout::fixed::detail::shuffle_impl_1(
|
||||
cont,
|
||||
indexes,
|
||||
sprout::fixed::detail::make_shuffle_indexes<sprout::fixed_container_traits<Container>::fixed_size>(
|
||||
sprout::fixed::detail::make_shuffle_indexes<sprout::container_traits<Container>::static_size>(
|
||||
size,
|
||||
sprout::forward<UniformRandomNumberGenerator>(g)
|
||||
),
|
||||
|
@ -104,9 +104,9 @@ namespace sprout {
|
|||
{
|
||||
return sprout::fixed::detail::shuffle_impl(
|
||||
cont,
|
||||
typename sprout::index_range<0, sprout::fixed_container_traits<Container>::fixed_size>::type(),
|
||||
typename sprout::index_range<0, sprout::container_traits<Container>::static_size>::type(),
|
||||
sprout::forward<UniformRandomNumberGenerator>(g),
|
||||
sprout::fixed_begin_offset(cont),
|
||||
sprout::internal_begin_offset(cont),
|
||||
sprout::size(cont)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
#include <sprout/array.hpp>
|
||||
#include <sprout/pit.hpp>
|
||||
#include <sprout/tuple/tuple.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/utility/forward.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
|
@ -82,8 +82,8 @@ namespace sprout {
|
|||
Container const& cont,
|
||||
sprout::index_tuple<Indexes...>,
|
||||
Shuffled const& shuffled,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Container>::size_type size
|
||||
typename sprout::container_traits<Container>::difference_type offset,
|
||||
typename sprout::container_traits<Container>::size_type size
|
||||
)
|
||||
{
|
||||
typedef sprout::tuples::tuple<
|
||||
|
@ -91,12 +91,12 @@ namespace sprout {
|
|||
typename std::decay<UniformRandomNumberGenerator>::type
|
||||
> result_type;
|
||||
return result_type(
|
||||
sprout::remake_clone<Container>(
|
||||
sprout::remake<Container>(
|
||||
cont,
|
||||
sprout::size(cont),
|
||||
(Indexes >= offset && Indexes < offset + size
|
||||
? *sprout::next(sprout::begin(cont), sprout::tuples::get<0>(shuffled)[Indexes - offset])
|
||||
: *sprout::next(sprout::fixed_begin(cont), Indexes)
|
||||
: *sprout::next(sprout::internal_begin(cont), Indexes)
|
||||
)...
|
||||
),
|
||||
sprout::tuples::get<1>(shuffled)
|
||||
|
@ -110,14 +110,14 @@ namespace sprout {
|
|||
Container const& cont,
|
||||
sprout::index_tuple<Indexes...> indexes,
|
||||
UniformRandomNumberGenerator&& g,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Container>::size_type size
|
||||
typename sprout::container_traits<Container>::difference_type offset,
|
||||
typename sprout::container_traits<Container>::size_type size
|
||||
)
|
||||
{
|
||||
return sprout::fixed::detail::shuffle_result_impl_1<UniformRandomNumberGenerator>(
|
||||
cont,
|
||||
indexes,
|
||||
sprout::fixed::detail::make_shuffle_result_indexes<sprout::fixed_container_traits<Container>::fixed_size>(
|
||||
sprout::fixed::detail::make_shuffle_result_indexes<sprout::container_traits<Container>::static_size>(
|
||||
size,
|
||||
sprout::forward<UniformRandomNumberGenerator>(g)
|
||||
),
|
||||
|
@ -140,9 +140,9 @@ namespace sprout {
|
|||
{
|
||||
return sprout::fixed::detail::shuffle_result_impl(
|
||||
cont,
|
||||
typename sprout::index_range<0, sprout::fixed_container_traits<Container>::fixed_size>::type(),
|
||||
typename sprout::index_range<0, sprout::container_traits<Container>::static_size>::type(),
|
||||
sprout::forward<UniformRandomNumberGenerator>(g),
|
||||
sprout::fixed_begin_offset(cont),
|
||||
sprout::internal_begin_offset(cont),
|
||||
sprout::size(cont)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/algorithm/fixed/swap_element.hpp>
|
||||
|
@ -17,36 +17,36 @@ namespace sprout {
|
|||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type sort_lr(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type start,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type end,
|
||||
typename sprout::container_traits<Container>::difference_type start,
|
||||
typename sprout::container_traits<Container>::difference_type end,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type l,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type r,
|
||||
typename sprout::fixed_container_traits<Container>::value_type const& p
|
||||
typename sprout::container_traits<Container>::difference_type l,
|
||||
typename sprout::container_traits<Container>::difference_type r,
|
||||
typename sprout::container_traits<Container>::value_type const& p
|
||||
);
|
||||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type sort_start(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type start,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type end,
|
||||
typename sprout::container_traits<Container>::difference_type start,
|
||||
typename sprout::container_traits<Container>::difference_type end,
|
||||
Compare comp
|
||||
);
|
||||
|
||||
template<typename Container, typename Iterator>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed_container_traits<Container>::value_type const& sort_select_pivot(
|
||||
SPROUT_CONSTEXPR inline typename sprout::container_traits<Container>::value_type const& sort_select_pivot(
|
||||
Iterator origin,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type start,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type end
|
||||
typename sprout::container_traits<Container>::difference_type start,
|
||||
typename sprout::container_traits<Container>::difference_type end
|
||||
)
|
||||
{ // pivot を選ぶ(中央の要素)
|
||||
return *sprout::next(origin, (end + start) / 2);
|
||||
}
|
||||
template<typename Container, typename Iterator, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed_container_traits<Container>::difference_type sort_find_l(
|
||||
SPROUT_CONSTEXPR inline typename sprout::container_traits<Container>::difference_type sort_find_l(
|
||||
Iterator origin,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type l,
|
||||
typename sprout::fixed_container_traits<Container>::value_type const& p
|
||||
typename sprout::container_traits<Container>::difference_type l,
|
||||
typename sprout::container_traits<Container>::value_type const& p
|
||||
)
|
||||
{ // left を見つける
|
||||
return comp(*sprout::next(origin, l), p)
|
||||
|
@ -55,11 +55,11 @@ namespace sprout {
|
|||
;
|
||||
}
|
||||
template<typename Container, typename Iterator, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed_container_traits<Container>::difference_type sort_find_r(
|
||||
SPROUT_CONSTEXPR inline typename sprout::container_traits<Container>::difference_type sort_find_r(
|
||||
Iterator origin,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type r,
|
||||
typename sprout::fixed_container_traits<Container>::value_type const& p
|
||||
typename sprout::container_traits<Container>::difference_type r,
|
||||
typename sprout::container_traits<Container>::value_type const& p
|
||||
)
|
||||
{ // right を見つける
|
||||
return comp(p, *sprout::next(origin, r))
|
||||
|
@ -70,43 +70,43 @@ namespace sprout {
|
|||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type swap_lr(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type l,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type r
|
||||
typename sprout::container_traits<Container>::difference_type l,
|
||||
typename sprout::container_traits<Container>::difference_type r
|
||||
);
|
||||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type sort_part_l(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type start,
|
||||
typename sprout::container_traits<Container>::difference_type start,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type l
|
||||
typename sprout::container_traits<Container>::difference_type l
|
||||
)
|
||||
{ // 左側をソート
|
||||
return start < l - 1
|
||||
? sprout::fixed::detail::sort_start(cont, start, l - 1, comp)
|
||||
: sprout::clone(cont)
|
||||
: sprout::deep_copy(cont)
|
||||
;
|
||||
}
|
||||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type sort_part_r(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type end,
|
||||
typename sprout::container_traits<Container>::difference_type end,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type r
|
||||
typename sprout::container_traits<Container>::difference_type r
|
||||
)
|
||||
{ // 右側をソート
|
||||
return r + 1 < end
|
||||
? sprout::fixed::detail::sort_start(cont, r + 1, end, comp)
|
||||
: sprout::clone(cont)
|
||||
: sprout::deep_copy(cont)
|
||||
;
|
||||
}
|
||||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type sort_part_lr(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type start,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type end,
|
||||
typename sprout::container_traits<Container>::difference_type start,
|
||||
typename sprout::container_traits<Container>::difference_type end,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type l,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type r
|
||||
typename sprout::container_traits<Container>::difference_type l,
|
||||
typename sprout::container_traits<Container>::difference_type r
|
||||
)
|
||||
{ // 左右に分けてソート
|
||||
return sprout::fixed::detail::sort_part_r(
|
||||
|
@ -119,12 +119,12 @@ namespace sprout {
|
|||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type sort_next(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type start,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type end,
|
||||
typename sprout::container_traits<Container>::difference_type start,
|
||||
typename sprout::container_traits<Container>::difference_type end,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type l,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type r,
|
||||
typename sprout::fixed_container_traits<Container>::value_type const& p
|
||||
typename sprout::container_traits<Container>::difference_type l,
|
||||
typename sprout::container_traits<Container>::difference_type r,
|
||||
typename sprout::container_traits<Container>::value_type const& p
|
||||
)
|
||||
{ // left と right 比較して、左右に分けてソートするか、またはスワップしてこの範囲のソートを続ける
|
||||
return l >= r
|
||||
|
@ -132,8 +132,8 @@ namespace sprout {
|
|||
: sprout::fixed::detail::sort_lr(
|
||||
sprout::fixed::swap_element(
|
||||
cont,
|
||||
sprout::next(sprout::fixed_begin(cont), l),
|
||||
sprout::next(sprout::fixed_begin(cont), r)
|
||||
sprout::next(sprout::internal_begin(cont), l),
|
||||
sprout::next(sprout::internal_begin(cont), r)
|
||||
),
|
||||
start,
|
||||
end,
|
||||
|
@ -147,12 +147,12 @@ namespace sprout {
|
|||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type sort_lr(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type start,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type end,
|
||||
typename sprout::container_traits<Container>::difference_type start,
|
||||
typename sprout::container_traits<Container>::difference_type end,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type l,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type r,
|
||||
typename sprout::fixed_container_traits<Container>::value_type const& p
|
||||
typename sprout::container_traits<Container>::difference_type l,
|
||||
typename sprout::container_traits<Container>::difference_type r,
|
||||
typename sprout::container_traits<Container>::value_type const& p
|
||||
)
|
||||
{ // left と right を検索
|
||||
return sprout::fixed::detail::sort_next(
|
||||
|
@ -160,16 +160,16 @@ namespace sprout {
|
|||
start,
|
||||
end,
|
||||
comp,
|
||||
sprout::fixed::detail::sort_find_l<Container>(sprout::fixed_begin(cont), comp, l, p),
|
||||
sprout::fixed::detail::sort_find_r<Container>(sprout::fixed_begin(cont), comp, r, p),
|
||||
sprout::fixed::detail::sort_find_l<Container>(sprout::internal_begin(cont), comp, l, p),
|
||||
sprout::fixed::detail::sort_find_r<Container>(sprout::internal_begin(cont), comp, r, p),
|
||||
p
|
||||
);
|
||||
}
|
||||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type sort_start(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type start,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type end,
|
||||
typename sprout::container_traits<Container>::difference_type start,
|
||||
typename sprout::container_traits<Container>::difference_type end,
|
||||
Compare comp
|
||||
)
|
||||
{ // pivot を選択してソートを開始
|
||||
|
@ -180,23 +180,23 @@ namespace sprout {
|
|||
comp,
|
||||
start,
|
||||
end,
|
||||
sprout::fixed::detail::sort_select_pivot<Container>(sprout::fixed_begin(cont), start, end)
|
||||
sprout::fixed::detail::sort_select_pivot<Container>(sprout::internal_begin(cont), start, end)
|
||||
);
|
||||
}
|
||||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
(sprout::fixed_container_traits<Container>::fixed_size <= 1),
|
||||
(sprout::container_traits<Container>::static_size <= 1),
|
||||
typename sprout::fixed::result_of::algorithm<Container>::type
|
||||
>::type sort(
|
||||
Container const& cont,
|
||||
Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::clone(cont);
|
||||
return sprout::deep_copy(cont);
|
||||
}
|
||||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
(sprout::fixed_container_traits<Container>::fixed_size > 1),
|
||||
(sprout::container_traits<Container>::static_size > 1),
|
||||
typename sprout::fixed::result_of::algorithm<Container>::type
|
||||
>::type sort(
|
||||
Container const& cont,
|
||||
|
@ -205,24 +205,24 @@ namespace sprout {
|
|||
{
|
||||
return sprout::fixed::detail::sort_start(
|
||||
cont,
|
||||
sprout::fixed_begin_offset(cont),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::fixed_begin(cont), sprout::end(cont) - 1),
|
||||
sprout::internal_begin_offset(cont),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::internal_begin(cont), sprout::end(cont) - 1),
|
||||
comp
|
||||
);
|
||||
}
|
||||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
(sprout::fixed_container_traits<Container>::fixed_size <= 1),
|
||||
(sprout::container_traits<Container>::static_size <= 1),
|
||||
typename sprout::fixed::result_of::algorithm<Container>::type
|
||||
>::type sort(
|
||||
Container const& cont
|
||||
)
|
||||
{
|
||||
return sprout::clone(cont);
|
||||
return sprout::deep_copy(cont);
|
||||
}
|
||||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
(sprout::fixed_container_traits<Container>::fixed_size > 1),
|
||||
(sprout::container_traits<Container>::static_size > 1),
|
||||
typename sprout::fixed::result_of::algorithm<Container>::type
|
||||
>::type sort(
|
||||
Container const& cont
|
||||
|
@ -230,9 +230,9 @@ namespace sprout {
|
|||
{
|
||||
return sprout::fixed::detail::sort_start(
|
||||
cont,
|
||||
sprout::fixed_begin_offset(cont),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::fixed_begin(cont), sprout::end(cont) - 1),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::fixed_container_traits<Container>::value_type>()
|
||||
sprout::internal_begin_offset(cont),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::internal_begin(cont), sprout::end(cont) - 1),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::container_traits<Container>::value_type>()
|
||||
);
|
||||
}
|
||||
} // namespace detail
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIXED_SORT_HEAP_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/algorithm/fixed/swap_element.hpp>
|
||||
|
@ -17,12 +17,12 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type sort_heap_impl(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Container>::difference_type size
|
||||
typename sprout::container_traits<Container>::difference_type offset,
|
||||
typename sprout::container_traits<Container>::difference_type size
|
||||
)
|
||||
{
|
||||
return size < 2
|
||||
? sprout::clone(cont)
|
||||
? sprout::deep_copy(cont)
|
||||
: sprout::fixed::detail::sort_heap_impl(
|
||||
sprout::fixed::detail::pop_heap_impl(
|
||||
sprout::fixed::swap_element(cont, sprout::begin(cont), sprout::next(sprout::begin(cont), size - 1)),
|
||||
|
@ -49,7 +49,7 @@ namespace sprout {
|
|||
return sprout::fixed::detail::sort_heap_impl(
|
||||
cont,
|
||||
comp,
|
||||
sprout::fixed_begin_offset(cont),
|
||||
sprout::internal_begin_offset(cont),
|
||||
sprout::size(cont)
|
||||
);
|
||||
}
|
||||
|
@ -63,8 +63,8 @@ namespace sprout {
|
|||
{
|
||||
return sprout::fixed::detail::sort_heap_impl(
|
||||
cont,
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::fixed_container_traits<Container>::value_type>(),
|
||||
sprout::fixed_begin_offset(cont),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::container_traits<Container>::value_type>(),
|
||||
sprout::internal_begin_offset(cont),
|
||||
sprout::size(cont)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIXED_STABLE_PARTITION_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/algorithm/fixed/stable_partition_copy.hpp>
|
||||
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/detail/container_complate.hpp>
|
||||
|
@ -14,29 +14,29 @@ namespace sprout {
|
|||
namespace detail {
|
||||
template<typename BidirectionalIterator, typename Result, typename Predicate, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type stable_partition_copy_impl_1(
|
||||
BidirectionalIterator first,
|
||||
BidirectionalIterator last,
|
||||
Result const& result,
|
||||
Predicate pred,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args...);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args...);
|
||||
}
|
||||
template<typename BidirectionalIterator, typename Result, typename Predicate, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type stable_partition_copy_impl_1(
|
||||
BidirectionalIterator first,
|
||||
BidirectionalIterator last,
|
||||
Result const& result,
|
||||
Predicate pred,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
@ -50,30 +50,30 @@ namespace sprout {
|
|||
|
||||
template<typename BidirectionalIterator, typename Result, typename Predicate, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type stable_partition_copy_impl(
|
||||
BidirectionalIterator first,
|
||||
BidirectionalIterator last,
|
||||
Result const& result,
|
||||
Predicate pred,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
BidirectionalIterator temp_first,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args...);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args...);
|
||||
}
|
||||
template<typename BidirectionalIterator, typename Result, typename Predicate, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type stable_partition_copy_impl(
|
||||
BidirectionalIterator first,
|
||||
BidirectionalIterator last,
|
||||
Result const& result,
|
||||
Predicate pred,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
BidirectionalIterator temp_first,
|
||||
Args const&... args
|
||||
)
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/detail/container_complate.hpp>
|
||||
|
@ -16,39 +16,39 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type stable_sort_impl_restart(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::size_type size,
|
||||
typename sprout::fixed_container_traits<Container>::value_type const& prev_value,
|
||||
typename sprout::container_traits<Container>::size_type size,
|
||||
typename sprout::container_traits<Container>::value_type const& prev_value,
|
||||
Args const&... args
|
||||
);
|
||||
template<typename Container, typename Compare, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Container>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Container>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Container>::type
|
||||
>::type stable_sort_impl_synonym(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::size_type size,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator first,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator last,
|
||||
typename sprout::fixed_container_traits<Container>::value_type const& value,
|
||||
typename sprout::fixed_container_traits<Container>::size_type count,
|
||||
typename sprout::container_traits<Container>::size_type size,
|
||||
typename sprout::container_traits<Container>::const_iterator first,
|
||||
typename sprout::container_traits<Container>::const_iterator last,
|
||||
typename sprout::container_traits<Container>::value_type const& value,
|
||||
typename sprout::container_traits<Container>::size_type count,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Container>(cont, sprout::size(cont), args...);
|
||||
return sprout::remake<Container>(cont, sprout::size(cont), args...);
|
||||
}
|
||||
template<typename Container, typename Compare, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Container>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Container>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Container>::type
|
||||
>::type stable_sort_impl_synonym(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::size_type size,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator first,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator last,
|
||||
typename sprout::fixed_container_traits<Container>::value_type const& value,
|
||||
typename sprout::fixed_container_traits<Container>::size_type count,
|
||||
typename sprout::container_traits<Container>::size_type size,
|
||||
typename sprout::container_traits<Container>::const_iterator first,
|
||||
typename sprout::container_traits<Container>::const_iterator last,
|
||||
typename sprout::container_traits<Container>::value_type const& value,
|
||||
typename sprout::container_traits<Container>::size_type count,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
@ -63,13 +63,13 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type stable_sort_impl_restart_1(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::size_type size,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator first,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator last,
|
||||
typename sprout::fixed_container_traits<Container>::value_type const& value,
|
||||
typename sprout::fixed_container_traits<Container>::size_type count,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator current,
|
||||
typename sprout::fixed_container_traits<Container>::value_type const& prev_value,
|
||||
typename sprout::container_traits<Container>::size_type size,
|
||||
typename sprout::container_traits<Container>::const_iterator first,
|
||||
typename sprout::container_traits<Container>::const_iterator last,
|
||||
typename sprout::container_traits<Container>::value_type const& value,
|
||||
typename sprout::container_traits<Container>::size_type count,
|
||||
typename sprout::container_traits<Container>::const_iterator current,
|
||||
typename sprout::container_traits<Container>::value_type const& prev_value,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
@ -88,8 +88,8 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type stable_sort_impl_restart(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::size_type size,
|
||||
typename sprout::fixed_container_traits<Container>::value_type const& prev_value,
|
||||
typename sprout::container_traits<Container>::size_type size,
|
||||
typename sprout::container_traits<Container>::value_type const& prev_value,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
@ -113,12 +113,12 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type stable_sort_impl_1(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::size_type size,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator first,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator last,
|
||||
typename sprout::fixed_container_traits<Container>::value_type const& value,
|
||||
typename sprout::fixed_container_traits<Container>::size_type count,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator current
|
||||
typename sprout::container_traits<Container>::size_type size,
|
||||
typename sprout::container_traits<Container>::const_iterator first,
|
||||
typename sprout::container_traits<Container>::const_iterator last,
|
||||
typename sprout::container_traits<Container>::value_type const& value,
|
||||
typename sprout::container_traits<Container>::size_type count,
|
||||
typename sprout::container_traits<Container>::const_iterator current
|
||||
)
|
||||
{
|
||||
return first != last
|
||||
|
@ -134,7 +134,7 @@ namespace sprout {
|
|||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type stable_sort_impl(
|
||||
Container const& cont,
|
||||
Compare comp,
|
||||
typename sprout::fixed_container_traits<Container>::size_type size
|
||||
typename sprout::container_traits<Container>::size_type size
|
||||
)
|
||||
{
|
||||
return sprout::fixed::detail::stable_sort_impl_1(
|
||||
|
@ -150,18 +150,18 @@ namespace sprout {
|
|||
}
|
||||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
(sprout::fixed_container_traits<Container>::fixed_size <= 1),
|
||||
(sprout::container_traits<Container>::static_size <= 1),
|
||||
typename sprout::fixed::result_of::algorithm<Container>::type
|
||||
>::type stable_sort(
|
||||
Container const& cont,
|
||||
Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::clone(cont);
|
||||
return sprout::deep_copy(cont);
|
||||
}
|
||||
template<typename Container, typename Compare>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
(sprout::fixed_container_traits<Container>::fixed_size > 1),
|
||||
(sprout::container_traits<Container>::static_size > 1),
|
||||
typename sprout::fixed::result_of::algorithm<Container>::type
|
||||
>::type stable_sort(
|
||||
Container const& cont,
|
||||
|
@ -176,17 +176,17 @@ namespace sprout {
|
|||
}
|
||||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
(sprout::fixed_container_traits<Container>::fixed_size <= 1),
|
||||
(sprout::container_traits<Container>::static_size <= 1),
|
||||
typename sprout::fixed::result_of::algorithm<Container>::type
|
||||
>::type stable_sort(
|
||||
Container const& cont
|
||||
)
|
||||
{
|
||||
return sprout::clone(cont);
|
||||
return sprout::deep_copy(cont);
|
||||
}
|
||||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
(sprout::fixed_container_traits<Container>::fixed_size > 1),
|
||||
(sprout::container_traits<Container>::static_size > 1),
|
||||
typename sprout::fixed::result_of::algorithm<Container>::type
|
||||
>::type stable_sort(
|
||||
Container const& cont
|
||||
|
@ -194,7 +194,7 @@ namespace sprout {
|
|||
{
|
||||
return sprout::fixed::detail::stable_sort_impl(
|
||||
cont,
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::fixed_container_traits<Container>::value_type>(),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less<typename sprout::container_traits<Container>::value_type>(),
|
||||
sprout::size(cont)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIXED_SWAP_ELEMENT_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/algorithm/fixed/swap_element_copy.hpp>
|
||||
|
||||
|
@ -15,8 +15,8 @@ namespace sprout {
|
|||
template<typename Container>
|
||||
SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm<Container>::type swap_element(
|
||||
Container const& cont,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator pos1,
|
||||
typename sprout::fixed_container_traits<Container>::const_iterator pos2
|
||||
typename sprout::container_traits<Container>::const_iterator pos1,
|
||||
typename sprout::container_traits<Container>::const_iterator pos2
|
||||
)
|
||||
{
|
||||
return sprout::fixed::swap_element_copy(sprout::begin(cont), sprout::end(cont), cont, pos1, pos2);
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/index_tuple.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/detail/container_complate.hpp>
|
||||
|
@ -23,12 +23,12 @@ namespace sprout {
|
|||
RandomAccessIterator pos1,
|
||||
RandomAccessIterator pos2,
|
||||
sprout::index_tuple<Indexes...>,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::fixed_container_traits<Result>::size_type input_size
|
||||
typename sprout::container_traits<Result>::difference_type offset,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type input_size
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(
|
||||
return sprout::remake<Result>(
|
||||
result,
|
||||
sprout::size(result),
|
||||
(Indexes >= offset && Indexes < offset + size && Indexes < offset + input_size
|
||||
|
@ -37,7 +37,7 @@ namespace sprout {
|
|||
: sprout::next(first, Indexes - offset) == pos2
|
||||
? *pos1
|
||||
: *sprout::next(first, Indexes - offset)
|
||||
: *sprout::next(sprout::fixed_begin(result), Indexes)
|
||||
: *sprout::next(sprout::internal_begin(result), Indexes)
|
||||
)...
|
||||
);
|
||||
}
|
||||
|
@ -57,15 +57,15 @@ namespace sprout {
|
|||
result,
|
||||
pos1,
|
||||
pos2,
|
||||
typename sprout::index_range<0, sprout::fixed_container_traits<Result>::fixed_size>::type(),
|
||||
sprout::fixed_begin_offset(result),
|
||||
typename sprout::index_range<0, sprout::container_traits<Result>::static_size>::type(),
|
||||
sprout::internal_begin_offset(result),
|
||||
sprout::size(result),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last)
|
||||
);
|
||||
}
|
||||
template<typename InputIterator, typename Result, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type swap_element_copy_impl(
|
||||
InputIterator first,
|
||||
|
@ -73,15 +73,15 @@ namespace sprout {
|
|||
Result const& result,
|
||||
InputIterator pos1,
|
||||
InputIterator pos2,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args...);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args...);
|
||||
}
|
||||
template<typename InputIterator, typename Result, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type swap_element_copy_impl(
|
||||
InputIterator first,
|
||||
|
@ -89,7 +89,7 @@ namespace sprout {
|
|||
Result const& result,
|
||||
InputIterator pos1,
|
||||
InputIterator pos2,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/index_tuple.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/detail/container_complate.hpp>
|
||||
|
@ -22,17 +22,17 @@ namespace sprout {
|
|||
Result const& result,
|
||||
UnaryOperation op,
|
||||
sprout::index_tuple<Indexes...>,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::fixed_container_traits<Result>::size_type input_size
|
||||
typename sprout::container_traits<Result>::difference_type offset,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type input_size
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(
|
||||
return sprout::remake<Result>(
|
||||
result,
|
||||
sprout::size(result),
|
||||
(Indexes >= offset && Indexes < offset + size && Indexes < offset + input_size
|
||||
? op(*sprout::next(first, Indexes - offset))
|
||||
: *sprout::next(sprout::fixed_begin(result), Indexes)
|
||||
: *sprout::next(sprout::internal_begin(result), Indexes)
|
||||
)...
|
||||
);
|
||||
}
|
||||
|
@ -50,37 +50,37 @@ namespace sprout {
|
|||
last,
|
||||
result,
|
||||
op,
|
||||
typename sprout::index_range<0, sprout::fixed_container_traits<Result>::fixed_size>::type(),
|
||||
sprout::fixed_begin_offset(result),
|
||||
typename sprout::index_range<0, sprout::container_traits<Result>::static_size>::type(),
|
||||
sprout::internal_begin_offset(result),
|
||||
sprout::size(result),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last)
|
||||
);
|
||||
}
|
||||
template<typename InputIterator, typename Result, typename UnaryOperation, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type transform_impl(
|
||||
InputIterator first,
|
||||
InputIterator last,
|
||||
Result const& result,
|
||||
UnaryOperation op,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args...);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args...);
|
||||
}
|
||||
template<typename InputIterator, typename Result, typename UnaryOperation, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type transform_impl(
|
||||
InputIterator first,
|
||||
InputIterator last,
|
||||
Result const& result,
|
||||
UnaryOperation op,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
@ -125,17 +125,17 @@ namespace sprout {
|
|||
Result const& result,
|
||||
BinaryOperation op,
|
||||
sprout::index_tuple<Indexes...>,
|
||||
typename sprout::fixed_container_traits<Result>::difference_type offset,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::fixed_container_traits<Result>::size_type input_size
|
||||
typename sprout::container_traits<Result>::difference_type offset,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type input_size
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(
|
||||
return sprout::remake<Result>(
|
||||
result,
|
||||
sprout::size(result),
|
||||
(Indexes >= offset && Indexes < offset + size && Indexes < offset + input_size
|
||||
? op(*sprout::next(first1, Indexes - offset), *sprout::next(first2, Indexes - offset))
|
||||
: *sprout::next(sprout::fixed_begin(result), Indexes)
|
||||
: *sprout::next(sprout::internal_begin(result), Indexes)
|
||||
)...
|
||||
);
|
||||
}
|
||||
|
@ -155,15 +155,15 @@ namespace sprout {
|
|||
first2,
|
||||
result,
|
||||
op,
|
||||
typename sprout::index_range<0, sprout::fixed_container_traits<Result>::fixed_size>::type(),
|
||||
sprout::fixed_begin_offset(result),
|
||||
typename sprout::index_range<0, sprout::container_traits<Result>::static_size>::type(),
|
||||
sprout::internal_begin_offset(result),
|
||||
sprout::size(result),
|
||||
NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first1, last1)
|
||||
);
|
||||
}
|
||||
template<typename InputIterator1, typename InputIterator2, typename Result, typename BinaryOperation, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type transform_impl(
|
||||
InputIterator1 first1,
|
||||
|
@ -171,15 +171,15 @@ namespace sprout {
|
|||
InputIterator2 first2,
|
||||
Result const& result,
|
||||
BinaryOperation op,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args...);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args...);
|
||||
}
|
||||
template<typename InputIterator1, typename InputIterator2, typename Result, typename BinaryOperation, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args),
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args),
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type transform_impl(
|
||||
InputIterator1 first1,
|
||||
|
@ -187,7 +187,7 @@ namespace sprout {
|
|||
InputIterator2 first2,
|
||||
Result const& result,
|
||||
BinaryOperation op,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define SPROUT_ALGORITHM_FIXED_UNIQUE_HPP
|
||||
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/algorithm/fixed/unique_copy.hpp>
|
||||
|
||||
namespace sprout {
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include <type_traits>
|
||||
#include <sprout/config.hpp>
|
||||
#include <sprout/fixed_container/traits.hpp>
|
||||
#include <sprout/fixed_container/functions.hpp>
|
||||
#include <sprout/container/traits.hpp>
|
||||
#include <sprout/container/functions.hpp>
|
||||
#include <sprout/iterator/operation.hpp>
|
||||
#include <sprout/algorithm/fixed/result_of.hpp>
|
||||
#include <sprout/detail/container_complate.hpp>
|
||||
|
@ -14,28 +14,28 @@ namespace sprout {
|
|||
namespace detail {
|
||||
template<typename InputIterator, typename Result, typename Head, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args) + 1,
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args) + 1,
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type unique_copy_impl(
|
||||
InputIterator first,
|
||||
InputIterator last,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Head const& head,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args..., head);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args..., head);
|
||||
}
|
||||
template<typename InputIterator, typename Result, typename Head, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args) + 1,
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args) + 1,
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type unique_copy_impl(
|
||||
InputIterator first,
|
||||
InputIterator last,
|
||||
Result const& result,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Head const& head,
|
||||
Args const&... args
|
||||
)
|
||||
|
@ -67,30 +67,30 @@ namespace sprout {
|
|||
namespace detail {
|
||||
template<typename InputIterator, typename Result, typename BinaryPredicate, typename Head, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size == sizeof...(Args) + 1,
|
||||
sprout::container_traits<Result>::static_size == sizeof...(Args) + 1,
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type unique_copy_impl(
|
||||
InputIterator first,
|
||||
InputIterator last,
|
||||
Result const& result,
|
||||
BinaryPredicate pred,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Head const& head,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
return sprout::remake_clone<Result>(result, sprout::size(result), args..., head);
|
||||
return sprout::remake<Result>(result, sprout::size(result), args..., head);
|
||||
}
|
||||
template<typename InputIterator, typename Result, typename BinaryPredicate, typename Head, typename... Args>
|
||||
SPROUT_CONSTEXPR inline typename std::enable_if<
|
||||
sprout::fixed_container_traits<Result>::fixed_size != sizeof...(Args) + 1,
|
||||
sprout::container_traits<Result>::static_size != sizeof...(Args) + 1,
|
||||
typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
>::type unique_copy_impl(
|
||||
InputIterator first,
|
||||
InputIterator last,
|
||||
Result const& result,
|
||||
BinaryPredicate pred,
|
||||
typename sprout::fixed_container_traits<Result>::size_type size,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Head const& head,
|
||||
Args const&... args
|
||||
)
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue