mirror of
https://github.com/bolero-MURAKAMI/Sprout.git
synced 2025-07-14 15:04:09 +00:00
fix iterator parameter
This commit is contained in:
parent
6e8b5ea395
commit
802f2fbaed
111 changed files with 607 additions and 633 deletions
|
@ -31,7 +31,7 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator, typename Result, typename Compare, sprout::index_t... Indexes>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
clamp_range_copy_impl_ra(
|
||||
RandomAccessIterator first, RandomAccessIterator, Result const& result,
|
||||
RandomAccessIterator const& first, RandomAccessIterator, Result const& result,
|
||||
typename std::iterator_traits<RandomAccessIterator>::value_type const& low,
|
||||
typename std::iterator_traits<RandomAccessIterator>::value_type const& high,
|
||||
Compare comp,
|
||||
|
@ -53,7 +53,7 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator, typename Result, typename Compare>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
clamp_range_copy(
|
||||
RandomAccessIterator first, RandomAccessIterator last, Result const& result,
|
||||
RandomAccessIterator const& first, RandomAccessIterator const& last, Result const& result,
|
||||
typename std::iterator_traits<RandomAccessIterator>::value_type const& low,
|
||||
typename std::iterator_traits<RandomAccessIterator>::value_type const& high,
|
||||
Compare comp,
|
||||
|
@ -91,7 +91,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
clamp_range_copy_impl(
|
||||
InputIterator first, InputIterator last, Result const& result,
|
||||
InputIterator const& first, InputIterator const& last, Result const& result,
|
||||
typename std::iterator_traits<InputIterator>::value_type const& low,
|
||||
typename std::iterator_traits<InputIterator>::value_type const& high,
|
||||
Compare comp,
|
||||
|
@ -111,7 +111,7 @@ namespace sprout {
|
|||
template<typename InputIterator, typename Result, typename Compare>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
clamp_range_copy(
|
||||
InputIterator first, InputIterator last, Result const& result,
|
||||
InputIterator const& first, InputIterator const& last, Result const& result,
|
||||
typename std::iterator_traits<InputIterator>::value_type const& low,
|
||||
typename std::iterator_traits<InputIterator>::value_type const& high,
|
||||
Compare comp,
|
||||
|
@ -127,7 +127,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
clamp_range_copy(
|
||||
InputIterator first, InputIterator last, Result const& result,
|
||||
InputIterator const& first, InputIterator const& last, Result const& result,
|
||||
typename std::iterator_traits<InputIterator>::value_type const& low,
|
||||
typename std::iterator_traits<InputIterator>::value_type const& high,
|
||||
Compare comp
|
||||
|
@ -143,7 +143,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
clamp_range_copy(
|
||||
InputIterator first, InputIterator last, Result const& result,
|
||||
InputIterator const& first, InputIterator const& last, Result const& result,
|
||||
typename std::iterator_traits<InputIterator>::value_type const& low,
|
||||
typename std::iterator_traits<InputIterator>::value_type const& high,
|
||||
Compare comp
|
||||
|
|
|
@ -29,7 +29,7 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator, typename Result, sprout::index_t... Indexes>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
copy_impl_ra(
|
||||
RandomAccessIterator first, RandomAccessIterator, Result const& result,
|
||||
RandomAccessIterator const& first, RandomAccessIterator const&, Result const& result,
|
||||
sprout::index_tuple<Indexes...>,
|
||||
typename sprout::container_traits<Result>::difference_type offset,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
|
@ -47,7 +47,7 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator, typename Result>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
copy(
|
||||
RandomAccessIterator first, RandomAccessIterator last, Result const& result,
|
||||
RandomAccessIterator const& first, RandomAccessIterator const& last, Result const& result,
|
||||
std::random_access_iterator_tag*
|
||||
)
|
||||
{
|
||||
|
@ -79,7 +79,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
copy_impl(
|
||||
InputIterator first, InputIterator last, Result const& result,
|
||||
InputIterator const& first, InputIterator const& last, Result const& result,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
|
@ -92,7 +92,7 @@ namespace sprout {
|
|||
template<typename InputIterator, typename Result>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
copy(
|
||||
InputIterator first, InputIterator last, Result const& result,
|
||||
InputIterator const& first, InputIterator const& last, Result const& result,
|
||||
std::input_iterator_tag*
|
||||
)
|
||||
{
|
||||
|
@ -104,7 +104,7 @@ namespace sprout {
|
|||
sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
copy(InputIterator first, InputIterator last, Result const& result) {
|
||||
copy(InputIterator const& first, InputIterator const& last, Result const& result) {
|
||||
typedef typename std::iterator_traits<InputIterator>::iterator_category* category;
|
||||
return sprout::fixed::detail::copy(first, last, result, category());
|
||||
}
|
||||
|
@ -114,7 +114,7 @@ namespace sprout {
|
|||
!sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
copy(InputIterator first, InputIterator last, Result const& result) {
|
||||
copy(InputIterator const& first, InputIterator const& last, Result const& result) {
|
||||
return sprout::remake<Result>(
|
||||
result, sprout::size(result),
|
||||
first, last
|
||||
|
|
|
@ -29,7 +29,7 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator, typename Result, sprout::index_t... Indexes>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
copy_backward_impl_ra(
|
||||
RandomAccessIterator, RandomAccessIterator last, Result const& result,
|
||||
RandomAccessIterator const&, RandomAccessIterator const& last, Result const& result,
|
||||
sprout::index_tuple<Indexes...>,
|
||||
typename sprout::container_traits<Result>::difference_type offset,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
|
@ -47,7 +47,7 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator, typename Result>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
copy_backward(
|
||||
RandomAccessIterator first, RandomAccessIterator last, Result const& result,
|
||||
RandomAccessIterator const& first, RandomAccessIterator const& last, Result const& result,
|
||||
std::random_access_iterator_tag*
|
||||
)
|
||||
{
|
||||
|
@ -78,7 +78,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
copy_backward_impl(
|
||||
BidirectionalIterator first, BidirectionalIterator last, Result const& result,
|
||||
BidirectionalIterator const& first, BidirectionalIterator const& last, Result const& result,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
|
@ -91,7 +91,7 @@ namespace sprout {
|
|||
template<typename BidirectionalIterator, typename Result>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
copy_backward(
|
||||
BidirectionalIterator first, BidirectionalIterator last, Result const& result,
|
||||
BidirectionalIterator const& first, BidirectionalIterator const& last, Result const& result,
|
||||
std::bidirectional_iterator_tag*
|
||||
)
|
||||
{
|
||||
|
@ -106,7 +106,7 @@ namespace sprout {
|
|||
sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
copy_backward(BidirectionalIterator first, BidirectionalIterator last, Result const& result) {
|
||||
copy_backward(BidirectionalIterator const& first, BidirectionalIterator const& last, Result const& result) {
|
||||
typedef typename std::iterator_traits<BidirectionalIterator>::iterator_category* category;
|
||||
return sprout::fixed::detail::copy_backward(first, last, result, category());
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
|||
sprout::container_traits<Result>::static_size == sizeof...(Args),
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
copy_if_impl(InputIterator, InputIterator, Result const& result, Predicate,
|
||||
copy_if_impl(InputIterator const&, InputIterator const&, Result const& result, Predicate,
|
||||
typename sprout::container_traits<Result>::size_type,
|
||||
Args const&... args
|
||||
)
|
||||
|
@ -41,7 +41,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
copy_if_impl(
|
||||
InputIterator first, InputIterator last, Result const& result, Predicate pred,
|
||||
InputIterator const& first, InputIterator const& last, Result const& result, Predicate pred,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
|
@ -59,7 +59,7 @@ namespace sprout {
|
|||
sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
copy_if(InputIterator first, InputIterator last, Result const& result, Predicate pred) {
|
||||
copy_if(InputIterator const& first, InputIterator const& last, Result const& result, Predicate pred) {
|
||||
return sprout::fixed::detail::copy_if_impl(first, last, result, pred, sprout::size(result));
|
||||
}
|
||||
|
||||
|
@ -68,7 +68,7 @@ namespace sprout {
|
|||
!sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
copy_if(InputIterator first, InputIterator last, Result const& result, Predicate pred) {
|
||||
copy_if(InputIterator const& first, InputIterator const& last, Result const& result, Predicate pred) {
|
||||
return sprout::remake<Result>(
|
||||
result, sprout::size(result),
|
||||
sprout::make_filter_iterator(pred, first, last),
|
||||
|
|
|
@ -29,7 +29,7 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator, typename Size, typename Result>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
copy_n(
|
||||
RandomAccessIterator first, Size n, Result const& result,
|
||||
RandomAccessIterator const& first, Size n, Result const& result,
|
||||
std::random_access_iterator_tag*
|
||||
)
|
||||
{
|
||||
|
@ -54,7 +54,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
copy_n_impl(
|
||||
InputIterator first, Size n, Result const& result,
|
||||
InputIterator const& first, Size n, Result const& result,
|
||||
typename sprout::container_traits<Result>::difference_type offset,
|
||||
Args const&... args
|
||||
)
|
||||
|
@ -67,7 +67,7 @@ namespace sprout {
|
|||
template<typename InputIterator, typename Size, typename Result>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
copy_n(
|
||||
InputIterator first, Size n, Result const& result,
|
||||
InputIterator const& first, Size n, Result const& result,
|
||||
std::input_iterator_tag*
|
||||
)
|
||||
{
|
||||
|
@ -79,7 +79,7 @@ namespace sprout {
|
|||
sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
copy_n(InputIterator first, Size n, Result const& result) {
|
||||
copy_n(InputIterator const& first, Size n, Result const& result) {
|
||||
typedef typename std::iterator_traits<InputIterator>::iterator_category* category;
|
||||
return sprout::fixed::detail::copy_n(first, n, result, category());
|
||||
}
|
||||
|
@ -89,7 +89,7 @@ namespace sprout {
|
|||
!sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
copy_n(InputIterator first, Size n, Result const& result) {
|
||||
copy_n(InputIterator const& first, Size n, Result const& result) {
|
||||
static_assert(sprout::is_forward_iterator<InputIterator>::value, "Sorry, not implemented.");
|
||||
return sprout::fixed::copy(first, sprout::next(first, n), result);
|
||||
}
|
||||
|
|
|
@ -30,7 +30,7 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator, typename Result, typename Predicate>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
copy_until(
|
||||
RandomAccessIterator first, RandomAccessIterator last, Result const& result, Predicate pred,
|
||||
RandomAccessIterator const& first, RandomAccessIterator const& last, Result const& result, Predicate pred,
|
||||
std::random_access_iterator_tag*
|
||||
)
|
||||
{
|
||||
|
@ -56,7 +56,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
copy_until_impl(
|
||||
InputIterator first, InputIterator last, Result const& result, Predicate pred,
|
||||
InputIterator const& first, InputIterator const& last, Result const& result, Predicate pred,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
|
@ -69,7 +69,7 @@ namespace sprout {
|
|||
template<typename InputIterator, typename Result, typename Predicate>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
copy_until(
|
||||
InputIterator first, InputIterator last, Result const& result, Predicate pred,
|
||||
InputIterator const& first, InputIterator const& last, Result const& result, Predicate pred,
|
||||
std::input_iterator_tag*
|
||||
)
|
||||
{
|
||||
|
@ -81,7 +81,7 @@ namespace sprout {
|
|||
sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
copy_until(InputIterator first, InputIterator last, Result const& result, Predicate pred) {
|
||||
copy_until(InputIterator const& first, InputIterator const& last, Result const& result, Predicate pred) {
|
||||
typedef typename std::iterator_traits<InputIterator>::iterator_category* category;
|
||||
return sprout::fixed::detail::copy_until(first, last, result, pred, category());
|
||||
}
|
||||
|
@ -91,7 +91,7 @@ namespace sprout {
|
|||
!sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
copy_until(InputIterator first, InputIterator last, Result const& result, Predicate pred) {
|
||||
copy_until(InputIterator const& first, InputIterator const& last, Result const& result, Predicate pred) {
|
||||
return sprout::remake<Result>(
|
||||
result, sprout::size(result),
|
||||
sprout::make_while_iterator(sprout::not1(pred), first, last),
|
||||
|
|
|
@ -29,7 +29,7 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator, typename Result, typename Predicate>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
copy_while(
|
||||
RandomAccessIterator first, RandomAccessIterator last, Result const& result, Predicate pred,
|
||||
RandomAccessIterator const& first, RandomAccessIterator const& last, Result const& result, Predicate pred,
|
||||
std::random_access_iterator_tag*
|
||||
)
|
||||
{
|
||||
|
@ -55,7 +55,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
copy_while_impl(
|
||||
InputIterator first, InputIterator last, Result const& result, Predicate pred,
|
||||
InputIterator const& first, InputIterator const& last, Result const& result, Predicate pred,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
|
@ -68,7 +68,7 @@ namespace sprout {
|
|||
template<typename InputIterator, typename Result, typename Predicate>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
copy_while(
|
||||
InputIterator first, InputIterator last, Result const& result, Predicate pred,
|
||||
InputIterator const& first, InputIterator const& last, Result const& result, Predicate pred,
|
||||
std::input_iterator_tag*
|
||||
)
|
||||
{
|
||||
|
@ -80,7 +80,7 @@ namespace sprout {
|
|||
sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
copy_while(InputIterator first, InputIterator last, Result const& result, Predicate pred) {
|
||||
copy_while(InputIterator const& first, InputIterator const& last, Result const& result, Predicate pred) {
|
||||
typedef typename std::iterator_traits<InputIterator>::iterator_category* category;
|
||||
return sprout::fixed::detail::copy_while(first, last, result, pred, category());
|
||||
}
|
||||
|
@ -90,7 +90,7 @@ namespace sprout {
|
|||
!sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
copy_while(InputIterator first, InputIterator last, Result const& result, Predicate pred) {
|
||||
copy_while(InputIterator const& first, InputIterator const& last, Result const& result, Predicate pred) {
|
||||
return sprout::remake<Result>(
|
||||
result, sprout::size(result),
|
||||
sprout::make_while_iterator(pred, first, last),
|
||||
|
|
|
@ -43,7 +43,7 @@ namespace sprout {
|
|||
template<typename Container, typename RandomAccessIterator>
|
||||
inline SPROUT_CONSTEXPR typename sprout::container_traits<Container>::value_type const&
|
||||
sort_select_pivot(
|
||||
RandomAccessIterator origin,
|
||||
RandomAccessIterator const& origin,
|
||||
typename sprout::container_traits<Container>::difference_type start,
|
||||
typename sprout::container_traits<Container>::difference_type end
|
||||
)
|
||||
|
@ -53,7 +53,7 @@ namespace sprout {
|
|||
template<typename Container, typename RandomAccessIterator, typename Compare>
|
||||
inline SPROUT_CONSTEXPR typename sprout::container_traits<Container>::difference_type
|
||||
sort_find_l(
|
||||
RandomAccessIterator origin,
|
||||
RandomAccessIterator const& origin,
|
||||
Compare comp,
|
||||
typename sprout::container_traits<Container>::difference_type l,
|
||||
typename sprout::container_traits<Container>::value_type const& p
|
||||
|
@ -67,7 +67,7 @@ namespace sprout {
|
|||
template<typename Container, typename RandomAccessIterator, typename Compare>
|
||||
inline SPROUT_CONSTEXPR typename sprout::container_traits<Container>::difference_type
|
||||
sort_find_r(
|
||||
RandomAccessIterator origin,
|
||||
RandomAccessIterator const& origin,
|
||||
Compare comp,
|
||||
typename sprout::container_traits<Container>::difference_type r,
|
||||
typename sprout::container_traits<Container>::value_type const& p
|
||||
|
|
|
@ -45,8 +45,8 @@ namespace sprout {
|
|||
inline SPROUT_CONSTEXPR Result
|
||||
next_permutation_impl_3(
|
||||
Container const& cont, Compare comp,
|
||||
BidirectionalIterator first, BidirectionalIterator last,
|
||||
BidirectionalIterator i, BidirectionalIterator ii, BidirectionalIterator j
|
||||
BidirectionalIterator const& first, BidirectionalIterator const& last,
|
||||
BidirectionalIterator const& i, BidirectionalIterator const& ii, BidirectionalIterator const& j
|
||||
)
|
||||
{
|
||||
return !comp(*i, *sprout::prev(j)) ? sprout::fixed::detail::next_permutation_impl_3<Result>(
|
||||
|
@ -63,8 +63,8 @@ namespace sprout {
|
|||
inline SPROUT_CONSTEXPR Result
|
||||
next_permutation_impl_2(
|
||||
Container const& cont, Compare comp,
|
||||
BidirectionalIterator first, BidirectionalIterator last,
|
||||
BidirectionalIterator i, BidirectionalIterator ii
|
||||
BidirectionalIterator const& first, BidirectionalIterator const& last,
|
||||
BidirectionalIterator const& i, BidirectionalIterator const& ii
|
||||
)
|
||||
{
|
||||
return comp(*i, *ii) ? sprout::fixed::detail::next_permutation_impl_3<Result>(
|
||||
|
@ -80,7 +80,12 @@ namespace sprout {
|
|||
}
|
||||
template<typename Result, typename Container, typename Compare, typename BidirectionalIterator>
|
||||
inline SPROUT_CONSTEXPR Result
|
||||
next_permutation_impl_1(Container const& cont, Compare comp, BidirectionalIterator first, BidirectionalIterator last, BidirectionalIterator i) {
|
||||
next_permutation_impl_1(
|
||||
Container const& cont, Compare comp,
|
||||
BidirectionalIterator const& first, BidirectionalIterator const& last,
|
||||
BidirectionalIterator const& i
|
||||
)
|
||||
{
|
||||
return i == last ? Result(sprout::deep_copy(cont), false)
|
||||
: sprout::fixed::detail::next_permutation_impl_2<Result>(
|
||||
cont, comp, first, last,
|
||||
|
@ -90,7 +95,7 @@ namespace sprout {
|
|||
}
|
||||
template<typename Result, typename Container, typename Compare, typename BidirectionalIterator>
|
||||
inline SPROUT_CONSTEXPR Result
|
||||
next_permutation_impl(Container const& cont, Compare comp, BidirectionalIterator first, BidirectionalIterator last) {
|
||||
next_permutation_impl(Container const& cont, Compare comp, BidirectionalIterator const& first, BidirectionalIterator const& last) {
|
||||
return first == last ? Result(sprout::deep_copy(cont), false)
|
||||
: sprout::fixed::detail::next_permutation_impl_1<Result>(
|
||||
cont, comp, first, last,
|
||||
|
|
|
@ -26,7 +26,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
partition_copy_impl(
|
||||
InputIterator, InputIterator, Result const& result, Predicate,
|
||||
InputIterator const&, InputIterator const&, Result const& result, Predicate,
|
||||
typename sprout::container_traits<Result>::size_type,
|
||||
Args const&... args
|
||||
)
|
||||
|
@ -39,7 +39,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
partition_copy_impl(
|
||||
InputIterator first, InputIterator last, Result const& result, Predicate pred,
|
||||
InputIterator const& first, InputIterator const& last, Result const& result, Predicate pred,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
|
|
|
@ -45,8 +45,8 @@ namespace sprout {
|
|||
inline SPROUT_CONSTEXPR Result
|
||||
prev_permutation_impl_3(
|
||||
Container const& cont, Compare comp,
|
||||
BidirectionalIterator first, BidirectionalIterator last,
|
||||
BidirectionalIterator i, BidirectionalIterator ii, BidirectionalIterator j
|
||||
BidirectionalIterator const& first, BidirectionalIterator const& last,
|
||||
BidirectionalIterator const& i, BidirectionalIterator const& ii, BidirectionalIterator const& j
|
||||
)
|
||||
{
|
||||
return !comp(*sprout::prev(j), *i) ? sprout::fixed::detail::prev_permutation_impl_3<Result>(
|
||||
|
@ -63,8 +63,8 @@ namespace sprout {
|
|||
inline SPROUT_CONSTEXPR Result
|
||||
prev_permutation_impl_2(
|
||||
Container const& cont, Compare comp,
|
||||
BidirectionalIterator first, BidirectionalIterator last,
|
||||
BidirectionalIterator i, BidirectionalIterator ii
|
||||
BidirectionalIterator const& first, BidirectionalIterator const& last,
|
||||
BidirectionalIterator const& i, BidirectionalIterator const& ii
|
||||
)
|
||||
{
|
||||
return comp(*ii, *i) ? sprout::fixed::detail::prev_permutation_impl_3<Result>(
|
||||
|
@ -80,7 +80,12 @@ namespace sprout {
|
|||
}
|
||||
template<typename Result, typename Container, typename Compare, typename BidirectionalIterator>
|
||||
inline SPROUT_CONSTEXPR Result
|
||||
prev_permutation_impl_1(Container const& cont, Compare comp, BidirectionalIterator first, BidirectionalIterator last, BidirectionalIterator i) {
|
||||
prev_permutation_impl_1(
|
||||
Container const& cont, Compare comp,
|
||||
BidirectionalIterator const& first, BidirectionalIterator const& last,
|
||||
BidirectionalIterator const& i
|
||||
)
|
||||
{
|
||||
return i == last ? Result(sprout::deep_copy(cont), false)
|
||||
: sprout::fixed::detail::prev_permutation_impl_2<Result>(
|
||||
cont, comp, first, last,
|
||||
|
@ -90,7 +95,7 @@ namespace sprout {
|
|||
}
|
||||
template<typename Result, typename Container, typename Compare, typename BidirectionalIterator>
|
||||
inline SPROUT_CONSTEXPR Result
|
||||
prev_permutation_impl(Container const& cont, Compare comp, BidirectionalIterator first, BidirectionalIterator last) {
|
||||
prev_permutation_impl(Container const& cont, Compare comp, BidirectionalIterator const& first, BidirectionalIterator const& last) {
|
||||
return first == last ? Result(sprout::deep_copy(cont), false)
|
||||
: sprout::fixed::detail::prev_permutation_impl_1<Result>(
|
||||
cont, comp, first, last,
|
||||
|
|
|
@ -29,7 +29,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
remove_copy_impl(
|
||||
InputIterator, InputIterator,
|
||||
InputIterator const&, InputIterator const&,
|
||||
Result const& result, T const&,
|
||||
typename sprout::container_traits<Result>::size_type,
|
||||
Args const&... args
|
||||
|
@ -43,7 +43,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
remove_copy_impl(
|
||||
InputIterator first, InputIterator last,
|
||||
InputIterator const& first, InputIterator const& last,
|
||||
Result const& result, T const& value,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
|
@ -62,7 +62,7 @@ namespace sprout {
|
|||
sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
remove_copy(InputIterator first, InputIterator last, Result const& result, T const& value) {
|
||||
remove_copy(InputIterator const& first, InputIterator const& last, Result const& result, T const& value) {
|
||||
return sprout::fixed::detail::remove_copy_impl(first, last, result, value, sprout::size(result));
|
||||
}
|
||||
|
||||
|
@ -71,7 +71,7 @@ namespace sprout {
|
|||
!sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
remove_copy(InputIterator first, InputIterator last, Result const& result, T const& value) {
|
||||
remove_copy(InputIterator const& first, InputIterator const& last, Result const& result, T const& value) {
|
||||
return sprout::remake<Result>(
|
||||
result, sprout::size(result),
|
||||
sprout::make_remove_iterator(value, first, last),
|
||||
|
|
|
@ -29,7 +29,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
remove_copy_if_impl(
|
||||
InputIterator, InputIterator,
|
||||
InputIterator const&, InputIterator const&,
|
||||
Result const& result, Predicate,
|
||||
typename sprout::container_traits<Result>::size_type,
|
||||
Args const&... args
|
||||
|
@ -43,7 +43,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
remove_copy_if_impl(
|
||||
InputIterator first, InputIterator last,
|
||||
InputIterator const& first, InputIterator const& last,
|
||||
Result const& result, Predicate pred,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
|
@ -62,7 +62,7 @@ namespace sprout {
|
|||
sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
remove_copy_if(InputIterator first, InputIterator last, Result const& result, Predicate pred) {
|
||||
remove_copy_if(InputIterator const& first, InputIterator const& last, Result const& result, Predicate pred) {
|
||||
return sprout::fixed::detail::remove_copy_if_impl(first, last, result, pred, sprout::size(result));
|
||||
}
|
||||
|
||||
|
@ -71,7 +71,7 @@ namespace sprout {
|
|||
!sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
remove_copy_if(InputIterator first, InputIterator last, Result const& result, Predicate pred) {
|
||||
remove_copy_if(InputIterator const& first, InputIterator const& last, Result const& result, Predicate pred) {
|
||||
return sprout::remake<Result>(
|
||||
result, sprout::size(result),
|
||||
sprout::make_remove_if_iterator(pred, first, last),
|
||||
|
|
|
@ -30,7 +30,7 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator, typename Result, typename T, sprout::index_t... Indexes>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
replace_copy_impl_ra(
|
||||
RandomAccessIterator first, RandomAccessIterator,
|
||||
RandomAccessIterator const& first, RandomAccessIterator const&,
|
||||
Result const& result, T const& old_value, T const& new_value,
|
||||
sprout::index_tuple<Indexes...>,
|
||||
typename sprout::container_traits<Result>::difference_type offset,
|
||||
|
@ -49,7 +49,7 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator, typename Result, typename T>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
replace_copy(
|
||||
RandomAccessIterator first, RandomAccessIterator last,
|
||||
RandomAccessIterator const& first, RandomAccessIterator const& last,
|
||||
Result const& result, T const& old_value, T const& new_value,
|
||||
std::random_access_iterator_tag*
|
||||
)
|
||||
|
@ -83,7 +83,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
replace_copy_impl(
|
||||
InputIterator first, InputIterator last,
|
||||
InputIterator const& first, InputIterator const& last,
|
||||
Result const& result, T const& old_value, T const& new_value,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
|
@ -101,7 +101,7 @@ namespace sprout {
|
|||
template<typename InputIterator, typename Result, typename T>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
replace_copy(
|
||||
InputIterator first, InputIterator last,
|
||||
InputIterator const& first, InputIterator const& last,
|
||||
Result const& result, T const& old_value, T const& new_value,
|
||||
std::input_iterator_tag*
|
||||
)
|
||||
|
@ -114,7 +114,7 @@ namespace sprout {
|
|||
sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
replace_copy(InputIterator first, InputIterator last, Result const& result, T const& old_value, T const& new_value) {
|
||||
replace_copy(InputIterator const& first, InputIterator const& last, Result const& result, T const& old_value, T const& new_value) {
|
||||
typedef typename std::iterator_traits<InputIterator>::iterator_category* category;
|
||||
return sprout::fixed::detail::replace_copy(first, last, result, old_value, new_value, category());
|
||||
}
|
||||
|
@ -124,7 +124,7 @@ namespace sprout {
|
|||
!sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
replace_copy(InputIterator first, InputIterator last, Result const& result, T const& old_value, T const& new_value) {
|
||||
replace_copy(InputIterator const& first, InputIterator const& last, Result const& result, T const& old_value, T const& new_value) {
|
||||
return sprout::remake<Result>(
|
||||
result, sprout::size(result),
|
||||
sprout::make_replace_iterator(first, old_value, new_value),
|
||||
|
|
|
@ -29,7 +29,7 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator, typename Result, typename Predicate, typename T, sprout::index_t... Indexes>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
replace_copy_if_impl_ra(
|
||||
RandomAccessIterator first, RandomAccessIterator,
|
||||
RandomAccessIterator const& first, RandomAccessIterator const&,
|
||||
Result const& result, Predicate pred, T const& new_value,
|
||||
sprout::index_tuple<Indexes...>,
|
||||
typename sprout::container_traits<Result>::difference_type offset,
|
||||
|
@ -48,7 +48,7 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator, typename Result, typename Predicate, typename T>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
replace_copy_if(
|
||||
RandomAccessIterator first, RandomAccessIterator last,
|
||||
RandomAccessIterator const& first, RandomAccessIterator const& last,
|
||||
Result const& result, Predicate pred, T const& new_value,
|
||||
std::random_access_iterator_tag*
|
||||
)
|
||||
|
@ -82,7 +82,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
replace_copy_if_impl(
|
||||
InputIterator first, InputIterator last,
|
||||
InputIterator const& first, InputIterator const& last,
|
||||
Result const& result, Predicate pred, T const& new_value,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
|
@ -100,7 +100,7 @@ namespace sprout {
|
|||
template<typename InputIterator, typename Result, typename Predicate, typename T>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
replace_copy_if(
|
||||
InputIterator first, InputIterator last,
|
||||
InputIterator const& first, InputIterator const& last,
|
||||
Result const& result, Predicate pred, T const& new_value,
|
||||
std::input_iterator_tag*
|
||||
)
|
||||
|
@ -113,7 +113,7 @@ namespace sprout {
|
|||
sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
replace_copy_if(InputIterator first, InputIterator last, Result const& result, Predicate pred, T const& new_value) {
|
||||
replace_copy_if(InputIterator const& first, InputIterator const& last, Result const& result, Predicate pred, T const& new_value) {
|
||||
typedef typename std::iterator_traits<InputIterator>::iterator_category* category;
|
||||
return sprout::fixed::detail::replace_copy_if(first, last, result, pred, new_value, category());
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ namespace sprout {
|
|||
!sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
replace_copy_if(InputIterator first, InputIterator last, Result const& result, Predicate pred, T const& new_value) {
|
||||
replace_copy_if(InputIterator const& first, InputIterator const& last, Result const& result, Predicate pred, T const& new_value) {
|
||||
return sprout::remake<Result>(
|
||||
result, sprout::size(result),
|
||||
sprout::make_replace_if_iterator(first, pred, new_value),
|
||||
|
|
|
@ -27,7 +27,7 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator, typename Result, sprout::index_t... Indexes>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
reverse_copy_impl_ra(
|
||||
RandomAccessIterator, RandomAccessIterator last, Result const& result,
|
||||
RandomAccessIterator const&, RandomAccessIterator const& last, Result const& result,
|
||||
sprout::index_tuple<Indexes...>,
|
||||
typename sprout::container_traits<Result>::difference_type offset,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
|
@ -46,7 +46,7 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator, typename Result>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
reverse_copy(
|
||||
RandomAccessIterator first, RandomAccessIterator last, Result const& result,
|
||||
RandomAccessIterator const& first, RandomAccessIterator const& last, Result const& result,
|
||||
std::random_access_iterator_tag*
|
||||
)
|
||||
{
|
||||
|
@ -78,7 +78,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
reverse_copy_impl(
|
||||
BidirectionalIterator first, BidirectionalIterator last, Result const& result,
|
||||
BidirectionalIterator const& first, BidirectionalIterator const& last, Result const& result,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
|
@ -91,7 +91,7 @@ namespace sprout {
|
|||
template<typename BidirectionalIterator, typename Result>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
reverse_copy(
|
||||
BidirectionalIterator first, BidirectionalIterator last, Result const& result,
|
||||
BidirectionalIterator const& first, BidirectionalIterator const& last, Result const& result,
|
||||
std::bidirectional_iterator_tag*
|
||||
)
|
||||
{
|
||||
|
@ -103,7 +103,7 @@ namespace sprout {
|
|||
sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
reverse_copy(BidirectionalIterator first, BidirectionalIterator last, Result const& result) {
|
||||
reverse_copy(BidirectionalIterator const& first, BidirectionalIterator const& last, Result const& result) {
|
||||
typedef typename std::iterator_traits<BidirectionalIterator>::iterator_category* category;
|
||||
return sprout::fixed::detail::reverse_copy(first, last, result, category());
|
||||
}
|
||||
|
@ -113,7 +113,7 @@ namespace sprout {
|
|||
!sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
reverse_copy(BidirectionalIterator first, BidirectionalIterator last, Result const& result) {
|
||||
reverse_copy(BidirectionalIterator const& first, BidirectionalIterator const& last, Result const& result) {
|
||||
return sprout::remake<Result>(
|
||||
result, sprout::size(result),
|
||||
sprout::make_reverse_iterator(last),
|
||||
|
|
|
@ -29,7 +29,7 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator, typename Result, sprout::index_t... Indexes>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
rotate_copy_impl_ra(
|
||||
RandomAccessIterator first, RandomAccessIterator middle,
|
||||
RandomAccessIterator const& first, RandomAccessIterator const& middle,
|
||||
typename sprout::container_traits<Result>::size_type last_half_size,
|
||||
Result const& result,
|
||||
sprout::index_tuple<Indexes...>,
|
||||
|
@ -53,7 +53,7 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator, typename Result>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
rotate_copy(
|
||||
RandomAccessIterator first, RandomAccessIterator middle, RandomAccessIterator last,
|
||||
RandomAccessIterator const& first, RandomAccessIterator const& middle, RandomAccessIterator const& last,
|
||||
Result const& result,
|
||||
std::random_access_iterator_tag*
|
||||
)
|
||||
|
@ -89,7 +89,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
rotate_copy_impl_1(
|
||||
ForwardIterator first, ForwardIterator last,
|
||||
ForwardIterator const& first, ForwardIterator const& last,
|
||||
Result const& result,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
|
@ -121,8 +121,8 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
rotate_copy_impl(
|
||||
ForwardIterator first, ForwardIterator middle,
|
||||
ForwardIterator middle_first, ForwardIterator last,
|
||||
ForwardIterator const& first, ForwardIterator const& middle,
|
||||
ForwardIterator const& middle_first, ForwardIterator const& last,
|
||||
Result const& result,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
|
@ -136,7 +136,7 @@ namespace sprout {
|
|||
template<typename ForwardIterator, typename Result>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
rotate_copy(
|
||||
ForwardIterator first, ForwardIterator middle, ForwardIterator last, Result const& result,
|
||||
ForwardIterator const& first, ForwardIterator const& middle, ForwardIterator const& last, Result const& result,
|
||||
std::forward_iterator_tag*
|
||||
)
|
||||
{
|
||||
|
@ -148,7 +148,7 @@ namespace sprout {
|
|||
sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
rotate_copy(ForwardIterator first, ForwardIterator middle, ForwardIterator last, Result const& result) {
|
||||
rotate_copy(ForwardIterator const& first, ForwardIterator const& middle, ForwardIterator const& last, Result const& result) {
|
||||
typedef typename std::iterator_traits<ForwardIterator>::iterator_category* category;
|
||||
return sprout::fixed::detail::rotate_copy(first, middle, last, result, category());
|
||||
}
|
||||
|
@ -158,7 +158,7 @@ namespace sprout {
|
|||
!sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
rotate_copy(ForwardIterator first, ForwardIterator middle, ForwardIterator last, Result const& result) {
|
||||
rotate_copy(ForwardIterator const& first, ForwardIterator const& middle, ForwardIterator const& last, Result const& result) {
|
||||
return sprout::remake<Result>(
|
||||
result, sprout::size(result),
|
||||
sprout::make_joint_iterator(middle, last, first, first),
|
||||
|
|
|
@ -26,7 +26,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
stable_partition_copy_impl_1(
|
||||
BidirectionalIterator, BidirectionalIterator,
|
||||
BidirectionalIterator const&, BidirectionalIterator const&,
|
||||
Result const& result, Predicate,
|
||||
typename sprout::container_traits<Result>::size_type,
|
||||
Args const&... args
|
||||
|
@ -40,7 +40,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
stable_partition_copy_impl_1(
|
||||
BidirectionalIterator first, BidirectionalIterator last,
|
||||
BidirectionalIterator const& first, BidirectionalIterator const& last,
|
||||
Result const& result, Predicate pred,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
|
@ -81,10 +81,10 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
stable_partition_copy_impl(
|
||||
BidirectionalIterator first, BidirectionalIterator last,
|
||||
BidirectionalIterator const& first, BidirectionalIterator const& last,
|
||||
Result const& result, Predicate pred,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
BidirectionalIterator temp_first,
|
||||
BidirectionalIterator const& temp_first,
|
||||
Args const&... args
|
||||
)
|
||||
{
|
||||
|
|
|
@ -28,9 +28,9 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator, typename Result, sprout::index_t... Indexes>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
swap_element_copy_impl_ra(
|
||||
RandomAccessIterator first, RandomAccessIterator,
|
||||
RandomAccessIterator const& first, RandomAccessIterator const&,
|
||||
Result const& result,
|
||||
RandomAccessIterator pos1, RandomAccessIterator pos2,
|
||||
RandomAccessIterator const& pos1, RandomAccessIterator const& pos2,
|
||||
sprout::index_tuple<Indexes...>,
|
||||
typename sprout::container_traits<Result>::difference_type offset,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
|
@ -53,9 +53,9 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator, typename Result>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
swap_element_copy(
|
||||
RandomAccessIterator first, RandomAccessIterator last,
|
||||
RandomAccessIterator const& first, RandomAccessIterator const& last,
|
||||
Result const& result,
|
||||
RandomAccessIterator pos1, RandomAccessIterator pos2,
|
||||
RandomAccessIterator const& pos1, RandomAccessIterator const& pos2,
|
||||
std::random_access_iterator_tag*
|
||||
)
|
||||
{
|
||||
|
@ -91,9 +91,9 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
swap_element_copy_impl(
|
||||
ForwardIterator first, ForwardIterator last,
|
||||
ForwardIterator const& first, ForwardIterator const& last,
|
||||
Result const& result,
|
||||
ForwardIterator pos1, ForwardIterator pos2,
|
||||
ForwardIterator const& pos1, ForwardIterator const& pos2,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
)
|
||||
|
@ -109,9 +109,9 @@ namespace sprout {
|
|||
template<typename ForwardIterator, typename Result>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
swap_element_copy(
|
||||
ForwardIterator first, ForwardIterator last,
|
||||
ForwardIterator const& first, ForwardIterator const& last,
|
||||
Result const& result,
|
||||
ForwardIterator pos1, ForwardIterator pos2,
|
||||
ForwardIterator const& pos1, ForwardIterator const& pos2,
|
||||
std::forward_iterator_tag*
|
||||
)
|
||||
{
|
||||
|
|
|
@ -30,7 +30,7 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator, typename Result, typename UnaryOperation, sprout::index_t... Indexes>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
transform_impl_ra(
|
||||
RandomAccessIterator first, RandomAccessIterator,
|
||||
RandomAccessIterator const& first, RandomAccessIterator const&,
|
||||
Result const& result, UnaryOperation op,
|
||||
sprout::index_tuple<Indexes...>,
|
||||
typename sprout::container_traits<Result>::difference_type offset,
|
||||
|
@ -49,7 +49,7 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator, typename Result, typename UnaryOperation>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
transform(
|
||||
RandomAccessIterator first, RandomAccessIterator last,
|
||||
RandomAccessIterator const& first, RandomAccessIterator const& last,
|
||||
Result const& result, UnaryOperation op,
|
||||
std::random_access_iterator_tag*
|
||||
)
|
||||
|
@ -84,7 +84,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
transform_impl(
|
||||
InputIterator first, InputIterator last,
|
||||
InputIterator const& first, InputIterator const& last,
|
||||
Result const& result, UnaryOperation op,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
|
@ -98,7 +98,7 @@ namespace sprout {
|
|||
template<typename InputIterator, typename Result, typename UnaryOperation>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
transform(
|
||||
InputIterator first, InputIterator last,
|
||||
InputIterator const& first, InputIterator const& last,
|
||||
Result const& result, UnaryOperation op,
|
||||
std::input_iterator_tag*
|
||||
)
|
||||
|
@ -111,7 +111,7 @@ namespace sprout {
|
|||
sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
transform(InputIterator first, InputIterator last, Result const& result, UnaryOperation op) {
|
||||
transform(InputIterator const& first, InputIterator const& last, Result const& result, UnaryOperation op) {
|
||||
typedef typename std::iterator_traits<InputIterator>::iterator_category* category;
|
||||
return sprout::fixed::detail::transform(first, last, result, op, category());
|
||||
}
|
||||
|
@ -121,7 +121,7 @@ namespace sprout {
|
|||
!sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
transform(InputIterator first, InputIterator last, Result const& result, UnaryOperation op) {
|
||||
transform(InputIterator const& first, InputIterator const& last, Result const& result, UnaryOperation op) {
|
||||
return sprout::remake<Result>(
|
||||
result, sprout::size(result),
|
||||
sprout::make_transform_iterator(first, op),
|
||||
|
@ -148,7 +148,7 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator1, typename RandomAccessIterator2, typename Result, typename BinaryOperation, sprout::index_t... Indexes>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
transform_impl_ra(
|
||||
RandomAccessIterator1 first1, RandomAccessIterator1, RandomAccessIterator2 first2,
|
||||
RandomAccessIterator1 const& first1, RandomAccessIterator1 const&, RandomAccessIterator2 first2,
|
||||
Result const& result, BinaryOperation op,
|
||||
sprout::index_tuple<Indexes...>,
|
||||
typename sprout::container_traits<Result>::difference_type offset,
|
||||
|
@ -167,7 +167,7 @@ namespace sprout {
|
|||
template<typename RandomAccessIterator1, typename RandomAccessIterator2, typename Result, typename BinaryOperation>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
transform(
|
||||
RandomAccessIterator1 first1, RandomAccessIterator1 last1, RandomAccessIterator2 first2,
|
||||
RandomAccessIterator1 const& first1, RandomAccessIterator1 const& last1, RandomAccessIterator2 first2,
|
||||
Result const& result, BinaryOperation op,
|
||||
std::random_access_iterator_tag*
|
||||
)
|
||||
|
@ -201,7 +201,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
transform_impl(
|
||||
InputIterator1 first1, InputIterator1 last1, InputIterator2 first2,
|
||||
InputIterator1 const& first1, InputIterator1 const& last1, InputIterator2 first2,
|
||||
Result const& result, BinaryOperation op,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Args const&... args
|
||||
|
@ -215,7 +215,7 @@ namespace sprout {
|
|||
template<typename InputIterator1, typename InputIterator2, typename Result, typename BinaryOperation>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Result>::type
|
||||
transform(
|
||||
InputIterator1 first1, InputIterator1 last1, InputIterator2 first2,
|
||||
InputIterator1 const& first1, InputIterator1 const& last1, InputIterator2 first2,
|
||||
Result const& result, BinaryOperation op,
|
||||
std::input_iterator_tag*
|
||||
)
|
||||
|
@ -228,7 +228,7 @@ namespace sprout {
|
|||
sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
transform(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, Result const& result, BinaryOperation op) {
|
||||
transform(InputIterator1 const& first1, InputIterator1 const& last1, InputIterator2 const& first2, Result const& result, BinaryOperation op) {
|
||||
typedef typename sprout::common_iterator_category<InputIterator1, InputIterator2>::type* category;
|
||||
return sprout::fixed::detail::transform(first1, last1, first2, result, op, category());
|
||||
}
|
||||
|
@ -238,7 +238,7 @@ namespace sprout {
|
|||
!sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
transform(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, Result const& result, BinaryOperation op) {
|
||||
transform(InputIterator1 const& first1, InputIterator1 const& last1, InputIterator2 const& first2, Result const& result, BinaryOperation op) {
|
||||
return sprout::remake<Result>(
|
||||
result, sprout::size(result),
|
||||
sprout::make_transform_iterator(first1, first2, op),
|
||||
|
|
|
@ -30,7 +30,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
unique_copy_impl(
|
||||
InputIterator, InputIterator,
|
||||
InputIterator const&, InputIterator const&,
|
||||
Result const& result,
|
||||
typename sprout::container_traits<Result>::size_type,
|
||||
Head const& head,
|
||||
|
@ -45,7 +45,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
unique_copy_impl(
|
||||
InputIterator first, InputIterator last,
|
||||
InputIterator const& first, InputIterator const& last,
|
||||
Result const& result,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Head const& head,
|
||||
|
@ -65,7 +65,7 @@ namespace sprout {
|
|||
sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
unique_copy(InputIterator first, InputIterator last, Result const& result) {
|
||||
unique_copy(InputIterator const& first, InputIterator const& last, Result const& result) {
|
||||
return first != last
|
||||
? sprout::fixed::detail::unique_copy_impl(sprout::next(first), last, result, sprout::size(result), *first)
|
||||
: sprout::detail::container_complate(result)
|
||||
|
@ -77,7 +77,7 @@ namespace sprout {
|
|||
!sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
unique_copy(InputIterator first, InputIterator last, Result const& result) {
|
||||
unique_copy(InputIterator const& first, InputIterator const& last, Result const& result) {
|
||||
static_assert(sprout::is_forward_iterator<InputIterator>::value, "Sorry, not implemented.");
|
||||
return sprout::remake<Result>(
|
||||
result, sprout::size(result),
|
||||
|
@ -108,7 +108,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
unique_copy_impl(
|
||||
InputIterator, InputIterator,
|
||||
InputIterator const&, InputIterator const&,
|
||||
Result const& result, BinaryPredicate,
|
||||
typename sprout::container_traits<Result>::size_type,
|
||||
Head const& head,
|
||||
|
@ -123,7 +123,7 @@ namespace sprout {
|
|||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
unique_copy_impl(
|
||||
InputIterator first, InputIterator last,
|
||||
InputIterator const& first, InputIterator const& last,
|
||||
Result const& result, BinaryPredicate pred,
|
||||
typename sprout::container_traits<Result>::size_type size,
|
||||
Head const& head,
|
||||
|
@ -143,7 +143,7 @@ namespace sprout {
|
|||
sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
unique_copy(InputIterator first, InputIterator last, Result const& result, BinaryPredicate pred) {
|
||||
unique_copy(InputIterator const& first, InputIterator const& last, Result const& result, BinaryPredicate pred) {
|
||||
return first != last
|
||||
? sprout::fixed::detail::unique_copy_impl(sprout::next(first), last, result, pred, sprout::size(result), *first)
|
||||
: sprout::detail::container_complate(result)
|
||||
|
@ -155,7 +155,7 @@ namespace sprout {
|
|||
!sprout::is_fixed_container<Result>::value,
|
||||
typename sprout::fixed::results::algorithm<Result>::type
|
||||
>::type
|
||||
unique_copy(InputIterator first, InputIterator last, Result const& result, BinaryPredicate pred) {
|
||||
unique_copy(InputIterator const& first, InputIterator const& last, Result const& result, BinaryPredicate pred) {
|
||||
static_assert(sprout::is_forward_iterator<InputIterator>::value, "Sorry, not implemented.");
|
||||
return sprout::remake<Result>(
|
||||
result, sprout::size(result),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue