[desuructive changes] container traits new interface [破壊的変更]

This commit is contained in:
bolero-MURAKAMI 2012-03-31 16:24:13 +09:00
parent 52a2178ac1
commit ad60c8c530
356 changed files with 3183 additions and 3251 deletions

2
README
View file

@ -57,7 +57,7 @@ constexpr UUID (UUID)
sprout/pit.hpp
コンテナ特性 (Container traits)
sprout/fixed_container.hpp
sprout/container.hpp
constexpr 構文解析 (Parsing)
sprout/weed.hpp

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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 std::decay<
typename sprout::containers::internal<
typename sprout::fixed::result_of::algorithm<Result>::type
>::internal_type
>::type
>::type
> type;
};
} // namespace result_of

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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