fix container_traits for array-like classes

fix coding style algorithm/
This commit is contained in:
bolero-MURAKAMI 2012-09-29 17:10:46 +09:00
parent 06f1933220
commit 0c00166c5f
123 changed files with 1608 additions and 2224 deletions

View file

@ -12,10 +12,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename UniformRandomNumberGenerator, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type bogo_sort_impl(
Container const& cont,
UniformRandomNumberGenerator&& g,
Compare comp,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
bogo_sort_impl(
Container const& cont, UniformRandomNumberGenerator&& g, Compare comp,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -30,25 +29,19 @@ namespace sprout {
// bogo_sort
//
template<typename Container, typename UniformRandomNumberGenerator, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type bogo_sort(
Container const& cont,
UniformRandomNumberGenerator&& g,
Compare comp
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
bogo_sort(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
return sprout::fit::detail::bogo_sort_impl(
cont,
sprout::forward<UniformRandomNumberGenerator>(g),
comp,
cont, sprout::forward<UniformRandomNumberGenerator>(g), comp,
sprout::internal_begin_offset(cont)
);
}
namespace detail {
template<typename Container, typename UniformRandomNumberGenerator>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type bogo_sort_impl(
Container const& cont,
UniformRandomNumberGenerator&& g,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
bogo_sort_impl(
Container const& cont, UniformRandomNumberGenerator&& g,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -63,14 +56,10 @@ namespace sprout {
// bogo_sort
//
template<typename Container, typename UniformRandomNumberGenerator>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type bogo_sort(
Container const& cont,
UniformRandomNumberGenerator&& g
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
bogo_sort(Container const& cont, UniformRandomNumberGenerator&& g) {
return sprout::fit::detail::bogo_sort_impl(
cont,
sprout::forward<UniformRandomNumberGenerator>(g),
cont, sprout::forward<UniformRandomNumberGenerator>(g),
sprout::internal_begin_offset(cont)
);
}

View file

@ -17,7 +17,8 @@ namespace sprout {
inline SPROUT_CONSTEXPR sprout::tuples::tuple<
typename sprout::fit::result_of::algorithm<Container>::type,
typename std::decay<UniformRandomNumberGenerator>::type
> bogo_sort_result_impl_1(
>
bogo_sort_result_impl_1(
Sorted const& sorted,
typename sprout::container_traits<Container>::difference_type offset
)
@ -39,10 +40,9 @@ namespace sprout {
inline SPROUT_CONSTEXPR sprout::tuples::tuple<
typename sprout::fit::result_of::algorithm<Container>::type,
typename std::decay<UniformRandomNumberGenerator>::type
> bogo_sort_result_impl(
Container const& cont,
UniformRandomNumberGenerator&& g,
Compare comp,
>
bogo_sort_result_impl(
Container const& cont, UniformRandomNumberGenerator&& g, Compare comp,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -59,16 +59,9 @@ namespace sprout {
inline SPROUT_CONSTEXPR sprout::tuples::tuple<
typename sprout::fit::result_of::algorithm<Container>::type,
typename std::decay<UniformRandomNumberGenerator>::type
> bogo_sort_result(
Container const& cont,
UniformRandomNumberGenerator&& g,
Compare comp
)
{
> bogo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
return sprout::fit::detail::bogo_sort_result_impl(
cont,
sprout::forward<UniformRandomNumberGenerator>(g),
comp,
cont, sprout::forward<UniformRandomNumberGenerator>(g), comp,
sprout::internal_begin_offset(cont)
);
}
@ -78,9 +71,9 @@ namespace sprout {
inline SPROUT_CONSTEXPR sprout::tuples::tuple<
typename sprout::fit::result_of::algorithm<Container>::type,
typename std::decay<UniformRandomNumberGenerator>::type
> bogo_sort_result_impl(
Container const& cont,
UniformRandomNumberGenerator&& g,
>
bogo_sort_result_impl(
Container const& cont, UniformRandomNumberGenerator&& g,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -97,14 +90,10 @@ namespace sprout {
inline SPROUT_CONSTEXPR sprout::tuples::tuple<
typename sprout::fit::result_of::algorithm<Container>::type,
typename std::decay<UniformRandomNumberGenerator>::type
> bogo_sort_result(
Container const& cont,
UniformRandomNumberGenerator&& g
)
{
>
bogo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g) {
return sprout::fit::detail::bogo_sort_result_impl(
cont,
sprout::forward<UniformRandomNumberGenerator>(g),
cont, sprout::forward<UniformRandomNumberGenerator>(g),
sprout::internal_begin_offset(cont)
);
}

View file

@ -12,10 +12,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename UniformRandomNumberGenerator, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type bozo_sort_impl(
Container const& cont,
UniformRandomNumberGenerator&& g,
Compare comp,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
bozo_sort_impl(
Container const& cont, UniformRandomNumberGenerator&& g, Compare comp,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -30,25 +29,19 @@ namespace sprout {
// bozo_sort
//
template<typename Container, typename UniformRandomNumberGenerator, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type bozo_sort(
Container const& cont,
UniformRandomNumberGenerator&& g,
Compare comp
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
bozo_sort(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
return sprout::fit::detail::bozo_sort_impl(
cont,
sprout::forward<UniformRandomNumberGenerator>(g),
comp,
cont, sprout::forward<UniformRandomNumberGenerator>(g), comp,
sprout::internal_begin_offset(cont)
);
}
namespace detail {
template<typename Container, typename UniformRandomNumberGenerator>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type bozo_sort_impl(
Container const& cont,
UniformRandomNumberGenerator&& g,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
bozo_sort_impl(
Container const& cont, UniformRandomNumberGenerator&& g,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -63,14 +56,10 @@ namespace sprout {
// bozo_sort
//
template<typename Container, typename UniformRandomNumberGenerator>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type bozo_sort(
Container const& cont,
UniformRandomNumberGenerator&& g
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
bozo_sort(Container const& cont, UniformRandomNumberGenerator&& g) {
return sprout::fit::detail::bozo_sort_impl(
cont,
sprout::forward<UniformRandomNumberGenerator>(g),
cont, sprout::forward<UniformRandomNumberGenerator>(g),
sprout::internal_begin_offset(cont)
);
}

View file

@ -17,7 +17,8 @@ namespace sprout {
inline SPROUT_CONSTEXPR sprout::tuples::tuple<
typename sprout::fit::result_of::algorithm<Container>::type,
typename std::decay<UniformRandomNumberGenerator>::type
> bozo_sort_result_impl_1(
>
bozo_sort_result_impl_1(
Sorted const& sorted,
typename sprout::container_traits<Container>::difference_type offset
)
@ -39,10 +40,9 @@ namespace sprout {
inline SPROUT_CONSTEXPR sprout::tuples::tuple<
typename sprout::fit::result_of::algorithm<Container>::type,
typename std::decay<UniformRandomNumberGenerator>::type
> bozo_sort_result_impl(
Container const& cont,
UniformRandomNumberGenerator&& g,
Compare comp,
>
bozo_sort_result_impl(
Container const& cont, UniformRandomNumberGenerator&& g, Compare comp,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -59,16 +59,10 @@ namespace sprout {
inline SPROUT_CONSTEXPR sprout::tuples::tuple<
typename sprout::fit::result_of::algorithm<Container>::type,
typename std::decay<UniformRandomNumberGenerator>::type
> bozo_sort_result(
Container const& cont,
UniformRandomNumberGenerator&& g,
Compare comp
)
{
>
bozo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
return sprout::fit::detail::bozo_sort_result_impl(
cont,
sprout::forward<UniformRandomNumberGenerator>(g),
comp,
cont, sprout::forward<UniformRandomNumberGenerator>(g), comp,
sprout::internal_begin_offset(cont)
);
}
@ -78,9 +72,9 @@ namespace sprout {
inline SPROUT_CONSTEXPR sprout::tuples::tuple<
typename sprout::fit::result_of::algorithm<Container>::type,
typename std::decay<UniformRandomNumberGenerator>::type
> bozo_sort_result_impl(
Container const& cont,
UniformRandomNumberGenerator&& g,
>
bozo_sort_result_impl(
Container const& cont, UniformRandomNumberGenerator&& g,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -97,14 +91,10 @@ namespace sprout {
inline SPROUT_CONSTEXPR sprout::tuples::tuple<
typename sprout::fit::result_of::algorithm<Container>::type,
typename std::decay<UniformRandomNumberGenerator>::type
> bozo_sort_result(
Container const& cont,
UniformRandomNumberGenerator&& g
)
{
>
bozo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g) {
return sprout::fit::detail::bozo_sort_result_impl(
cont,
sprout::forward<UniformRandomNumberGenerator>(g),
cont, sprout::forward<UniformRandomNumberGenerator>(g),
sprout::internal_begin_offset(cont)
);
}

View file

@ -14,10 +14,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename InputIterator, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type copy_impl(
InputIterator first,
InputIterator last,
Result const& result,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
copy_impl(
InputIterator first, InputIterator last, Result const& result,
typename sprout::container_traits<Result>::difference_type offset
)
{
@ -32,12 +31,8 @@ namespace sprout {
// copy
//
template<typename InputIterator, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type copy(
InputIterator first,
InputIterator last,
Result const& result
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
copy(InputIterator first, InputIterator last, Result const& result) {
return sprout::fit::detail::copy_impl(first, last, result, sprout::internal_begin_offset(result));
}
} // namespace fit

View file

@ -14,10 +14,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename BidirectionalIterator, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type copy_backward_impl(
BidirectionalIterator first,
BidirectionalIterator last,
Result const& result,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
copy_backward_impl(
BidirectionalIterator first, BidirectionalIterator last, Result const& result,
typename sprout::container_traits<Result>::difference_type offset
)
{
@ -32,12 +31,8 @@ namespace sprout {
// copy_backward
//
template<typename BidirectionalIterator, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type copy_backward(
BidirectionalIterator first,
BidirectionalIterator last,
Result const& result
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
copy_backward(BidirectionalIterator first, BidirectionalIterator last, Result const& result) {
return sprout::fit::detail::copy_backward_impl(first, last, result, sprout::internal_end_offset(result));
}
} // namespace fit

View file

@ -13,11 +13,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename InputIterator, typename Result, typename Predicate>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type copy_if_impl(
InputIterator first,
InputIterator last,
Result const& result,
Predicate pred,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
copy_if_impl(
InputIterator first, InputIterator last, Result const& result, Predicate pred,
typename sprout::container_traits<Result>::difference_type offset
)
{
@ -32,13 +30,8 @@ namespace sprout {
// copy_if
//
template<typename InputIterator, typename Result, typename Predicate>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type copy_if(
InputIterator first,
InputIterator last,
Result const& result,
Predicate pred
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
copy_if(InputIterator first, InputIterator last, Result const& result, Predicate pred) {
return sprout::fit::detail::copy_if_impl(first, last, result, pred, sprout::internal_begin_offset(result));
}
} // namespace fit

View file

@ -13,10 +13,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename InputIterator, typename Size, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type copy_n_impl(
InputIterator first,
Size n,
Result const& result,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
copy_n_impl(
InputIterator first, Size n, Result const& result,
typename sprout::container_traits<Result>::difference_type offset
)
{
@ -31,12 +30,8 @@ namespace sprout {
// copy_n
//
template<typename InputIterator, typename Size, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type copy_n(
InputIterator first,
Size n,
Result const& result
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
copy_n(InputIterator first, Size n, Result const& result) {
return sprout::fit::detail::copy_n_impl(first, n, result, sprout::internal_begin_offset(result));
}
} // namespace fit

View file

@ -12,9 +12,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename T>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type fill_impl(
Container const& cont,
T const& value,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
fill_impl(
Container const& cont, T const& value,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -29,11 +29,8 @@ namespace sprout {
// fill
//
template<typename Container, typename T>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type fill(
Container const& cont,
T const& value
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
fill(Container const& cont, T const& value) {
return sprout::fit::detail::fill_impl(cont, value, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -13,10 +13,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename Size, typename T>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type fill_n_impl(
Container const& cont,
Size n,
T const& value,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
fill_n_impl(
Container const& cont, Size n, T const& value,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -31,12 +30,8 @@ namespace sprout {
// fill_n
//
template<typename Container, typename Size, typename T>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type fill_n(
Container const& cont,
Size n,
T const& value
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
fill_n(Container const& cont, Size n, T const& value) {
return sprout::fit::detail::fill_n_impl(cont, n, value, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -12,9 +12,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename Generator>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type generate_impl(
Container const& cont,
Generator const& gen,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
generate_impl(
Container const& cont, Generator const& gen,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -29,11 +29,8 @@ namespace sprout {
// generate
//
template<typename Container, typename Generator>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type generate(
Container const& cont,
Generator const& gen
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
generate(Container const& cont, Generator const& gen) {
return sprout::fit::detail::generate_impl(cont, gen, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -12,10 +12,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type inplace_merge_impl(
Container const& cont,
typename sprout::container_traits<Container>::const_iterator middle,
Compare comp,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
inplace_merge_impl(
Container const& cont, typename sprout::container_traits<Container>::const_iterator middle, Compare comp,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -30,20 +29,16 @@ namespace sprout {
// inplace_merge
//
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type inplace_merge(
Container const& cont,
typename sprout::container_traits<Container>::const_iterator middle,
Compare comp
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
inplace_merge(Container const& cont, typename sprout::container_traits<Container>::const_iterator middle, Compare comp) {
return sprout::fit::detail::inplace_merge_impl(cont, middle, comp, sprout::internal_begin_offset(cont));
}
namespace detail {
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type inplace_merge_impl(
Container const& cont,
typename sprout::container_traits<Container>::const_iterator middle,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
inplace_merge_impl(
Container const& cont, typename sprout::container_traits<Container>::const_iterator middle,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -58,11 +53,8 @@ namespace sprout {
// inplace_merge
//
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type inplace_merge(
Container const& cont,
typename sprout::container_traits<Container>::const_iterator middle
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
inplace_merge(Container const& cont, typename sprout::container_traits<Container>::const_iterator middle) {
return sprout::fit::detail::inplace_merge_impl(cont, middle, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -12,9 +12,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type make_heap_impl(
Container const& cont,
Compare comp,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
make_heap_impl(
Container const& cont, Compare comp,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -29,17 +29,15 @@ namespace sprout {
// make_heap
//
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type make_heap(
Container const& cont,
Compare comp
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
make_heap(Container const& cont, Compare comp) {
return sprout::fit::detail::make_heap_impl(cont, comp, sprout::internal_begin_offset(cont));
}
namespace detail {
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type make_heap_impl(
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
make_heap_impl(
Container const& cont,
typename sprout::container_traits<Container>::difference_type offset
)
@ -55,10 +53,8 @@ namespace sprout {
// make_heap
//
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type make_heap(
Container const& cont
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
make_heap(Container const& cont) {
return sprout::fit::detail::make_heap_impl(cont, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -13,10 +13,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type make_partial_heap_impl(
Container const& cont,
typename sprout::container_traits<Container>::const_iterator middle,
Compare comp,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
make_partial_heap_impl(
Container const& cont, typename sprout::container_traits<Container>::const_iterator middle, Compare comp,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -31,20 +30,16 @@ namespace sprout {
// make_partial_heap
//
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type make_partial_heap(
Container const& cont,
typename sprout::container_traits<Container>::const_iterator middle,
Compare comp
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
make_partial_heap(Container const& cont, typename sprout::container_traits<Container>::const_iterator middle, Compare comp) {
return sprout::fit::detail::make_partial_heap_impl(cont, middle, comp, sprout::internal_begin_offset(cont));
}
namespace detail {
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type make_partial_heap_impl(
Container const& cont,
typename sprout::container_traits<Container>::const_iterator middle,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
make_partial_heap_impl(
Container const& cont, typename sprout::container_traits<Container>::const_iterator middle,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -59,11 +54,8 @@ namespace sprout {
// make_partial_heap
//
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type make_partial_heap(
Container const& cont,
typename sprout::container_traits<Container>::const_iterator middle
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
make_partial_heap(Container const& cont, typename sprout::container_traits<Container>::const_iterator middle) {
return sprout::fit::detail::make_partial_heap_impl(cont, middle, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -14,13 +14,11 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename InputIterator1, typename InputIterator2, typename Result, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type merge_impl(
InputIterator1 first1,
InputIterator1 last1,
InputIterator2 first2,
InputIterator2 last2,
Result const& result,
Compare comp,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
merge_impl(
InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, InputIterator2 last2,
Result const& result, Compare comp,
typename sprout::container_traits<Result>::difference_type offset
)
{
@ -38,13 +36,11 @@ namespace sprout {
// merge
//
template<typename InputIterator1, typename InputIterator2, typename Result, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type merge(
InputIterator1 first1,
InputIterator1 last1,
InputIterator2 first2,
InputIterator2 last2,
Result const& result,
Compare comp
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
merge(
InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, InputIterator2 last2,
Result const& result, Compare comp
)
{
return sprout::fit::detail::merge_impl(first1, last1, first2, last2, result, comp, sprout::internal_begin_offset(result));
@ -52,11 +48,10 @@ namespace sprout {
namespace detail {
template<typename InputIterator1, typename InputIterator2, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type merge_impl(
InputIterator1 first1,
InputIterator1 last1,
InputIterator2 first2,
InputIterator2 last2,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
merge_impl(
InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, InputIterator2 last2,
Result const& result,
typename sprout::container_traits<Result>::difference_type offset
)
@ -75,11 +70,10 @@ namespace sprout {
// merge
//
template<typename InputIterator1, typename InputIterator2, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type merge(
InputIterator1 first1,
InputIterator1 last1,
InputIterator2 first2,
InputIterator2 last2,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
merge(
InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, InputIterator2 last2,
Result const& result
)
{

View file

@ -33,8 +33,7 @@ namespace sprout {
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR sprout::pair<typename sprout::fit::result_of::algorithm<Container>::type, bool>
next_permutation_impl(
Container const& cont,
Compare comp,
Container const& cont, Compare comp,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -46,11 +45,7 @@ namespace sprout {
//
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR sprout::pair<typename sprout::fit::result_of::algorithm<Container>::type, bool>
next_permutation(
Container const& cont,
Compare comp
)
{
next_permutation(Container const& cont, Compare comp) {
return sprout::fit::detail::next_permutation_impl(cont, comp, sprout::internal_begin_offset(cont));
}
@ -70,10 +65,7 @@ namespace sprout {
//
template<typename Container>
inline SPROUT_CONSTEXPR sprout::pair<typename sprout::fit::result_of::algorithm<Container>::type, bool>
next_permutation(
Container const& cont
)
{
next_permutation(Container const& cont) {
return sprout::fit::detail::next_permutation_impl(cont, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -13,10 +13,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type nth_element_impl(
Container const& cont,
typename sprout::container_traits<Container>::const_iterator nth,
Compare comp,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
nth_element_impl(
Container const& cont, typename sprout::container_traits<Container>::const_iterator nth, Compare comp,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -31,20 +30,16 @@ namespace sprout {
// nth_element
//
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type nth_element(
Container const& cont,
typename sprout::container_traits<Container>::const_iterator nth,
Compare comp
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
nth_element(Container const& cont, typename sprout::container_traits<Container>::const_iterator nth, Compare comp) {
return sprout::fit::detail::nth_element_impl(cont, nth, comp, sprout::internal_begin_offset(cont));
}
namespace detail {
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type nth_element_impl(
Container const& cont,
typename sprout::container_traits<Container>::const_iterator nth,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
nth_element_impl(
Container const& cont, typename sprout::container_traits<Container>::const_iterator nth,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -59,11 +54,8 @@ namespace sprout {
// nth_element
//
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type nth_element(
Container const& cont,
typename sprout::container_traits<Container>::const_iterator nth
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
nth_element(Container const& cont, typename sprout::container_traits<Container>::const_iterator nth) {
return sprout::fit::detail::nth_element_impl(cont, nth, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -13,10 +13,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type partial_sort_impl(
Container const& cont,
typename sprout::container_traits<Container>::const_iterator middle,
Compare comp,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
partial_sort_impl(
Container const& cont, typename sprout::container_traits<Container>::const_iterator middle, Compare comp,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -31,20 +30,16 @@ namespace sprout {
// partial_sort
//
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type partial_sort(
Container const& cont,
typename sprout::container_traits<Container>::const_iterator middle,
Compare comp
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
partial_sort(Container const& cont, typename sprout::container_traits<Container>::const_iterator middle, Compare comp) {
return sprout::fit::detail::partial_sort_impl(cont, middle, comp, sprout::internal_begin_offset(cont));
}
namespace detail {
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type partial_sort_impl(
Container const& cont,
typename sprout::container_traits<Container>::const_iterator middle,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
partial_sort_impl(
Container const& cont, typename sprout::container_traits<Container>::const_iterator middle,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -59,11 +54,8 @@ namespace sprout {
// partial_sort
//
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type partial_sort(
Container const& cont,
typename sprout::container_traits<Container>::const_iterator middle
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
partial_sort(Container const& cont, typename sprout::container_traits<Container>::const_iterator middle) {
return sprout::fit::detail::partial_sort_impl(cont, middle, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -13,9 +13,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename Predicate>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type partition_impl(
Container const& cont,
Predicate pred,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
partition_impl(
Container const& cont, Predicate pred,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -30,11 +30,8 @@ namespace sprout {
// partition
//
template<typename Container, typename Predicate>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type partition(
Container const& cont,
Predicate pred
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
partition(Container const& cont, Predicate pred) {
return sprout::fit::detail::partition_impl(cont, pred, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -15,11 +15,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename InputIterator, typename Result, typename Predicate>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type partition_copy_impl(
InputIterator first,
InputIterator last,
Result const& result,
Predicate pred,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
partition_copy_impl(
InputIterator first, InputIterator last, Result const& result, Predicate pred,
typename sprout::container_traits<Result>::difference_type offset
)
{
@ -41,13 +39,8 @@ namespace sprout {
// partition_copy
//
template<typename InputIterator, typename Result, typename Predicate>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type partition_copy(
InputIterator first,
InputIterator last,
Result const& result,
Predicate pred
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
partition_copy(InputIterator first, InputIterator last, Result const& result, Predicate pred) {
return sprout::fit::detail::partition_copy_impl(first, last, result, pred, sprout::internal_begin_offset(result));
}
} // namespace fit

View file

@ -12,9 +12,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type pop_heap_impl(
Container const& cont,
Compare comp,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
pop_heap_impl(
Container const& cont, Compare comp,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -29,17 +29,15 @@ namespace sprout {
// pop_heap
//
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type pop_heap(
Container const& cont,
Compare comp
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
pop_heap(Container const& cont, Compare comp) {
return sprout::fit::detail::pop_heap_impl(cont, comp, sprout::internal_begin_offset(cont));
}
namespace detail {
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type pop_heap_impl(
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
pop_heap_impl(
Container const& cont,
typename sprout::container_traits<Container>::difference_type offset
)
@ -55,10 +53,8 @@ namespace sprout {
// pop_heap
//
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type pop_heap(
Container const& cont
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
pop_heap(Container const& cont) {
return sprout::fit::detail::pop_heap_impl(cont, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -15,8 +15,7 @@ namespace sprout {
template<typename Container, typename Permutation>
inline SPROUT_CONSTEXPR sprout::pair<typename sprout::fit::result_of::algorithm<Container>::type, bool>
prev_permutation_impl_1(
Container const& cont,
Permutation const& perm,
Container const& cont, Permutation const& perm,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -33,8 +32,7 @@ namespace sprout {
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR sprout::pair<typename sprout::fit::result_of::algorithm<Container>::type, bool>
prev_permutation_impl(
Container const& cont,
Compare comp,
Container const& cont, Compare comp,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -46,11 +44,7 @@ namespace sprout {
//
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR sprout::pair<typename sprout::fit::result_of::algorithm<Container>::type, bool>
prev_permutation(
Container const& cont,
Compare comp
)
{
prev_permutation(Container const& cont, Compare comp) {
return sprout::fit::detail::prev_permutation_impl(cont, comp, sprout::internal_begin_offset(cont));
}
@ -70,10 +64,7 @@ namespace sprout {
//
template<typename Container>
inline SPROUT_CONSTEXPR sprout::pair<typename sprout::fit::result_of::algorithm<Container>::type, bool>
prev_permutation(
Container const& cont
)
{
prev_permutation(Container const& cont) {
return sprout::fit::detail::prev_permutation_impl(cont, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -12,9 +12,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type push_heap_impl(
Container const& cont,
Compare comp,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
push_heap_impl(
Container const& cont, Compare comp,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -29,17 +29,15 @@ namespace sprout {
// push_heap
//
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type push_heap(
Container const& cont,
Compare comp
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
push_heap(Container const& cont, Compare comp) {
return sprout::fit::detail::push_heap_impl(cont, comp, sprout::internal_begin_offset(cont));
}
namespace detail {
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type push_heap_impl(
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
push_heap_impl(
Container const& cont,
typename sprout::container_traits<Container>::difference_type offset
)
@ -55,10 +53,8 @@ namespace sprout {
// push_heap
//
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type push_heap(
Container const& cont
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
push_heap(Container const& cont) {
return sprout::fit::detail::push_heap_impl(cont, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -13,9 +13,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename UniformRandomNumberGenerator>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type random_swap_impl(
Container const& cont,
UniformRandomNumberGenerator&& g,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
random_swap_impl(
Container const& cont, UniformRandomNumberGenerator&& g,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -30,14 +30,10 @@ namespace sprout {
// random_swap
//
template<typename Container, typename UniformRandomNumberGenerator>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type random_swap(
Container const& cont,
UniformRandomNumberGenerator&& g
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
random_swap(Container const& cont, UniformRandomNumberGenerator&& g) {
return sprout::fit::detail::random_swap_impl(
cont,
sprout::forward<UniformRandomNumberGenerator>(g),
cont, sprout::forward<UniformRandomNumberGenerator>(g),
sprout::internal_begin_offset(cont)
);
}

View file

@ -17,7 +17,8 @@ namespace sprout {
inline SPROUT_CONSTEXPR sprout::tuples::tuple<
typename sprout::fit::result_of::algorithm<Container>::type,
typename std::decay<UniformRandomNumberGenerator>::type
> random_swap_result_impl_1(
>
random_swap_result_impl_1(
Shuffled const& random_swapd,
typename sprout::container_traits<Container>::difference_type offset
)
@ -39,9 +40,9 @@ namespace sprout {
inline SPROUT_CONSTEXPR sprout::tuples::tuple<
typename sprout::fit::result_of::algorithm<Container>::type,
typename std::decay<UniformRandomNumberGenerator>::type
> random_swap_result_impl(
Container const& cont,
UniformRandomNumberGenerator&& g,
>
random_swap_result_impl(
Container const& cont, UniformRandomNumberGenerator&& g,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -58,14 +59,10 @@ namespace sprout {
inline SPROUT_CONSTEXPR sprout::tuples::tuple<
typename sprout::fit::result_of::algorithm<Container>::type,
typename std::decay<UniformRandomNumberGenerator>::type
> random_swap_result(
Container const& cont,
UniformRandomNumberGenerator&& g
)
{
>
random_swap_result(Container const& cont, UniformRandomNumberGenerator&& g) {
return sprout::fit::detail::random_swap_result_impl(
cont,
sprout::forward<UniformRandomNumberGenerator>(g),
cont, sprout::forward<UniformRandomNumberGenerator>(g),
sprout::internal_begin_offset(cont)
);
}

View file

@ -12,9 +12,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename Generator, typename... Inits>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type recurrence_impl(
Container const& cont,
Generator const& gen,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
recurrence_impl(
Container const& cont, Generator const& gen,
typename sprout::container_traits<Container>::difference_type offset,
Inits const&... inits
)
@ -30,12 +30,8 @@ namespace sprout {
// recurrence
//
template<typename Container, typename Generator, typename... Inits>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type recurrence(
Container const& cont,
Generator const& gen,
Inits const&... inits
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
recurrence(Container const& cont, Generator const& gen, Inits const&... inits) {
return sprout::fit::detail::recurrence_impl(cont, gen, sprout::internal_begin_offset(cont), inits...);
}
} // namespace fit

View file

@ -13,10 +13,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename Size, typename Generator, typename... Inits>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type recurrence_n_impl(
Container const& cont,
Size n,
Generator const& gen,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
recurrence_n_impl(
Container const& cont, Size n, Generator const& gen,
typename sprout::container_traits<Container>::difference_type offset,
Inits const&... inits
)
@ -32,13 +31,8 @@ namespace sprout {
// recurrence_n
//
template<typename Container, typename Size, typename Generator, typename... Inits>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type recurrence_n(
Container const& cont,
Size n,
Generator const& gen,
Inits const&... inits
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
recurrence_n(Container const& cont, Size n, Generator const& gen, Inits const&... inits) {
return sprout::fit::detail::recurrence_n_impl(cont, n, gen, sprout::internal_begin_offset(cont), inits...);
}
} // namespace fit

View file

@ -13,9 +13,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename T>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type remove_impl(
Container const& cont,
T const& value,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
remove_impl(
Container const& cont, T const& value,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -30,11 +30,8 @@ namespace sprout {
// remove
//
template<typename Container, typename T>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type remove(
Container const& cont,
T const& value
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
remove(Container const& cont, T const& value) {
return sprout::fit::detail::remove_impl(cont, value, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -14,18 +14,19 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename InputIterator, typename Result, typename T>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type remove_copy_impl(
InputIterator first,
InputIterator last,
Result const& result,
T const& value,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
remove_copy_impl(
InputIterator first, InputIterator last, Result const& result, T const& value,
typename sprout::container_traits<Result>::difference_type offset
)
{
return sprout::sub_copy(
sprout::get_internal(sprout::fixed::remove_copy(first, last, result, value)),
offset,
offset + NS_SSCRISK_CEL_OR_SPROUT::min(NS_SSCRISK_CEL_OR_SPROUT::distance(first, last) - NS_SSCRISK_CEL_OR_SPROUT::count(first, last, value), sprout::size(result))
offset + NS_SSCRISK_CEL_OR_SPROUT::min(
NS_SSCRISK_CEL_OR_SPROUT::distance(first, last) - NS_SSCRISK_CEL_OR_SPROUT::count(first, last, value),
sprout::size(result)
)
);
}
} // namespace detail
@ -33,13 +34,8 @@ namespace sprout {
// remove_copy
//
template<typename InputIterator, typename Result, typename T>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type remove_copy(
InputIterator first,
InputIterator last,
Result const& result,
T const& value
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
remove_copy(InputIterator first, InputIterator last, Result const& result, T const& value) {
return sprout::fit::detail::remove_copy_impl(first, last, result, value, sprout::internal_begin_offset(result));
}
} // namespace fit

View file

@ -14,18 +14,19 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename InputIterator, typename Result, typename Predicate>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type remove_copy_if_impl(
InputIterator first,
InputIterator last,
Result const& result,
Predicate pred,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
remove_copy_if_impl(
InputIterator first, InputIterator last, Result const& result, Predicate pred,
typename sprout::container_traits<Result>::difference_type offset
)
{
return sprout::sub_copy(
sprout::get_internal(sprout::fixed::remove_copy_if(first, last, result, pred)),
offset,
offset + NS_SSCRISK_CEL_OR_SPROUT::min(NS_SSCRISK_CEL_OR_SPROUT::distance(first, last) - NS_SSCRISK_CEL_OR_SPROUT::count_if(first, last, pred), sprout::size(result))
offset + NS_SSCRISK_CEL_OR_SPROUT::min(
NS_SSCRISK_CEL_OR_SPROUT::distance(first, last) - NS_SSCRISK_CEL_OR_SPROUT::count_if(first, last, pred),
sprout::size(result)
)
);
}
} // namespace detail
@ -33,13 +34,8 @@ namespace sprout {
// remove_copy_if
//
template<typename InputIterator, typename Result, typename Predicate>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type remove_copy_if(
InputIterator first,
InputIterator last,
Result const& result,
Predicate pred
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
remove_copy_if(InputIterator first, InputIterator last, Result const& result, Predicate pred) {
return sprout::fit::detail::remove_copy_if_impl(first, last, result, pred, sprout::internal_begin_offset(result));
}
} // namespace fit

View file

@ -13,9 +13,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename Predicate>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type remove_if_impl(
Container const& cont,
Predicate pred,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
remove_if_impl(
Container const& cont, Predicate pred,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -30,11 +30,8 @@ namespace sprout {
// remove_if
//
template<typename Container, typename Predicate>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type remove_if(
Container const& cont,
Predicate pred
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
remove_if(Container const& cont, Predicate pred) {
return sprout::fit::detail::remove_if_impl(cont, pred, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -12,10 +12,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename T>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type replace_impl(
Container const& cont,
T const& old_value,
T const& new_value,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
replace_impl(
Container const& cont, T const& old_value, T const& new_value,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -30,12 +29,8 @@ namespace sprout {
// replace
//
template<typename Container, typename T>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type replace(
Container const& cont,
T const& old_value,
T const& new_value
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
replace(Container const& cont, T const& old_value, T const& new_value) {
return sprout::fit::detail::replace_impl(cont, old_value, new_value, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -14,12 +14,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename InputIterator, typename Result, typename T>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type replace_copy_impl(
InputIterator first,
InputIterator last,
Result const& result,
T const& old_value,
T const& new_value,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
replace_copy_impl(
InputIterator first, InputIterator last, Result const& result, T const& old_value, T const& new_value,
typename sprout::container_traits<Result>::difference_type offset
)
{
@ -34,14 +31,8 @@ namespace sprout {
// replace_copy
//
template<typename InputIterator, typename Result, typename T>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type replace_copy(
InputIterator first,
InputIterator last,
Result const& result,
T const& old_value,
T const& new_value
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
replace_copy(InputIterator first, InputIterator last, Result const& result, T const& old_value, T const& new_value) {
return sprout::fit::detail::replace_copy_impl(first, last, result, old_value, new_value, sprout::internal_begin_offset(result));
}
} // namespace fit

View file

@ -14,12 +14,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename InputIterator, typename Result, typename T, typename Predicate>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type replace_copy_if_impl(
InputIterator first,
InputIterator last,
Result const& result,
Predicate pred,
T const& new_value,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
replace_copy_if_impl(
InputIterator first, InputIterator last, Result const& result, Predicate pred, T const& new_value,
typename sprout::container_traits<Result>::difference_type offset
)
{
@ -34,14 +31,8 @@ namespace sprout {
// replace_copy_if
//
template<typename InputIterator, typename Result, typename T, typename Predicate>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type replace_copy_if(
InputIterator first,
InputIterator last,
Result const& result,
Predicate pred,
T const& new_value
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
replace_copy_if(InputIterator first, InputIterator last, Result const& result, Predicate pred, T const& new_value) {
return sprout::fit::detail::replace_copy_if_impl(first, last, result, pred, new_value, sprout::internal_begin_offset(result));
}
} // namespace fit

View file

@ -12,10 +12,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename T, typename Predicate>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type replace_if_impl(
Container const& cont,
Predicate pred,
T const& new_value,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
replace_if_impl(
Container const& cont, Predicate pred, T const& new_value,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -30,12 +29,8 @@ namespace sprout {
// replace_if
//
template<typename Container, typename T, typename Predicate>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type replace_if(
Container const& cont,
Predicate pred,
T const& new_value
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
replace_if(Container const& cont, Predicate pred, T const& new_value) {
return sprout::fit::detail::replace_if_impl(cont, pred, new_value, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -12,7 +12,8 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type reverse_impl(
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
reverse_impl(
Container const& cont,
typename sprout::container_traits<Container>::difference_type offset
)
@ -28,10 +29,8 @@ namespace sprout {
// reverse
//
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type reverse(
Container const& cont
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
reverse(Container const& cont) {
return sprout::fit::detail::reverse_impl(cont, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -14,10 +14,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename BidirectionalIterator, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type reverse_copy_impl(
BidirectionalIterator first,
BidirectionalIterator last,
Result const& result,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
reverse_copy_impl(
BidirectionalIterator first, BidirectionalIterator last, Result const& result,
typename sprout::container_traits<Result>::difference_type offset
)
{
@ -32,12 +31,8 @@ namespace sprout {
// reverse_copy
//
template<typename BidirectionalIterator, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type reverse_copy(
BidirectionalIterator first,
BidirectionalIterator last,
Result const& result
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
reverse_copy(BidirectionalIterator first, BidirectionalIterator last, Result const& result) {
return sprout::fit::detail::reverse_copy_impl(first, last, result, sprout::internal_begin_offset(result));
}
} // namespace fit

View file

@ -12,9 +12,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type rotate_impl(
Container const& cont,
typename sprout::container_traits<Container>::const_iterator middle,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
rotate_impl(
Container const& cont, typename sprout::container_traits<Container>::const_iterator middle,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -29,11 +29,8 @@ namespace sprout {
// rotate
//
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type rotate(
Container const& cont,
typename sprout::container_traits<Container>::const_iterator middle
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
rotate(Container const& cont, typename sprout::container_traits<Container>::const_iterator middle) {
return sprout::fit::detail::rotate_impl(cont, middle, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -14,11 +14,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename ForwardIterator, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type rotate_copy_impl(
ForwardIterator first,
ForwardIterator middle,
ForwardIterator last,
Result const& result,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
rotate_copy_impl(
ForwardIterator first, ForwardIterator middle, ForwardIterator last, Result const& result,
typename sprout::container_traits<Result>::difference_type offset
)
{
@ -33,13 +31,8 @@ namespace sprout {
// rotate_copy
//
template<typename ForwardIterator, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type rotate_copy(
ForwardIterator first,
ForwardIterator middle,
ForwardIterator last,
Result const& result
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
rotate_copy(ForwardIterator first, ForwardIterator middle, ForwardIterator last, Result const& result) {
return sprout::fit::detail::rotate_copy_impl(first, middle, last, result, sprout::internal_begin_offset(result));
}
} // namespace fit

View file

@ -15,13 +15,11 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename InputIterator1, typename InputIterator2, typename Result, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type set_difference_impl(
InputIterator1 first1,
InputIterator1 last1,
InputIterator2 first2,
InputIterator2 last2,
Result const& result,
Compare comp,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
set_difference_impl(
InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, InputIterator2 last2,
Result const& result, Compare comp,
typename sprout::container_traits<Result>::difference_type offset
)
{
@ -41,13 +39,11 @@ namespace sprout {
// set_difference
//
template<typename InputIterator1, typename InputIterator2, typename Result, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type set_difference(
InputIterator1 first1,
InputIterator1 last1,
InputIterator2 first2,
InputIterator2 last2,
Result const& result,
Compare comp
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
set_difference(
InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, InputIterator2 last2,
Result const& result, Compare comp
)
{
return sprout::fit::detail::set_difference_impl(first1, last1, first2, last2, result, comp, sprout::internal_begin_offset(result));
@ -55,11 +51,10 @@ namespace sprout {
namespace detail {
template<typename InputIterator1, typename InputIterator2, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type set_difference_impl(
InputIterator1 first1,
InputIterator1 last1,
InputIterator2 first2,
InputIterator2 last2,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
set_difference_impl(
InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, InputIterator2 last2,
Result const& result,
typename sprout::container_traits<Result>::difference_type offset
)
@ -80,11 +75,10 @@ namespace sprout {
// set_difference
//
template<typename InputIterator1, typename InputIterator2, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type set_difference(
InputIterator1 first1,
InputIterator1 last1,
InputIterator2 first2,
InputIterator2 last2,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
set_difference(
InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, InputIterator2 last2,
Result const& result
)
{

View file

@ -14,13 +14,11 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename InputIterator1, typename InputIterator2, typename Result, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type set_intersection_impl(
InputIterator1 first1,
InputIterator1 last1,
InputIterator2 first2,
InputIterator2 last2,
Result const& result,
Compare comp,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
set_intersection_impl(
InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, InputIterator2 last2,
Result const& result, Compare comp,
typename sprout::container_traits<Result>::difference_type offset
)
{
@ -38,13 +36,11 @@ namespace sprout {
// set_intersection
//
template<typename InputIterator1, typename InputIterator2, typename Result, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type set_intersection(
InputIterator1 first1,
InputIterator1 last1,
InputIterator2 first2,
InputIterator2 last2,
Result const& result,
Compare comp
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
set_intersection(
InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, InputIterator2 last2,
Result const& result, Compare comp
)
{
return sprout::fit::detail::set_intersection_impl(first1, last1, first2, last2, result, comp, sprout::internal_begin_offset(result));
@ -52,11 +48,10 @@ namespace sprout {
namespace detail {
template<typename InputIterator1, typename InputIterator2, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type set_intersection_impl(
InputIterator1 first1,
InputIterator1 last1,
InputIterator2 first2,
InputIterator2 last2,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
set_intersection_impl(
InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, InputIterator2 last2,
Result const& result,
typename sprout::container_traits<Result>::difference_type offset
)
@ -75,11 +70,10 @@ namespace sprout {
// set_intersection
//
template<typename InputIterator1, typename InputIterator2, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type set_intersection(
InputIterator1 first1,
InputIterator1 last1,
InputIterator2 first2,
InputIterator2 last2,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
set_intersection(
InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, InputIterator2 last2,
Result const& result
)
{

View file

@ -15,13 +15,11 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename InputIterator1, typename InputIterator2, typename Result, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type set_symmetric_difference_impl(
InputIterator1 first1,
InputIterator1 last1,
InputIterator2 first2,
InputIterator2 last2,
Result const& result,
Compare comp,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
set_symmetric_difference_impl(
InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, InputIterator2 last2,
Result const& result, Compare comp,
typename sprout::container_traits<Result>::difference_type offset
)
{
@ -42,13 +40,11 @@ namespace sprout {
// set_symmetric_difference
//
template<typename InputIterator1, typename InputIterator2, typename Result, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type set_symmetric_difference(
InputIterator1 first1,
InputIterator1 last1,
InputIterator2 first2,
InputIterator2 last2,
Result const& result,
Compare comp
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
set_symmetric_difference(
InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, InputIterator2 last2,
Result const& result, Compare comp
)
{
return sprout::fit::detail::set_symmetric_difference_impl(first1, last1, first2, last2, result, comp, sprout::internal_begin_offset(result));
@ -56,11 +52,10 @@ namespace sprout {
namespace detail {
template<typename InputIterator1, typename InputIterator2, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type set_symmetric_difference_impl(
InputIterator1 first1,
InputIterator1 last1,
InputIterator2 first2,
InputIterator2 last2,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
set_symmetric_difference_impl(
InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, InputIterator2 last2,
Result const& result,
typename sprout::container_traits<Result>::difference_type offset
)
@ -82,11 +77,10 @@ namespace sprout {
// set_symmetric_difference
//
template<typename InputIterator1, typename InputIterator2, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type set_symmetric_difference(
InputIterator1 first1,
InputIterator1 last1,
InputIterator2 first2,
InputIterator2 last2,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
set_symmetric_difference(
InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, InputIterator2 last2,
Result const& result
)
{

View file

@ -15,13 +15,11 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename InputIterator1, typename InputIterator2, typename Result, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type set_union_impl(
InputIterator1 first1,
InputIterator1 last1,
InputIterator2 first2,
InputIterator2 last2,
Result const& result,
Compare comp,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
set_union_impl(
InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, InputIterator2 last2,
Result const& result, Compare comp,
typename sprout::container_traits<Result>::difference_type offset
)
{
@ -42,13 +40,11 @@ namespace sprout {
// set_union
//
template<typename InputIterator1, typename InputIterator2, typename Result, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type set_union(
InputIterator1 first1,
InputIterator1 last1,
InputIterator2 first2,
InputIterator2 last2,
Result const& result,
Compare comp
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
set_union(
InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, InputIterator2 last2,
Result const& result, Compare comp
)
{
return sprout::fit::detail::set_union_impl(first1, last1, first2, last2, result, comp, sprout::internal_begin_offset(result));
@ -56,11 +52,10 @@ namespace sprout {
namespace detail {
template<typename InputIterator1, typename InputIterator2, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type set_union_impl(
InputIterator1 first1,
InputIterator1 last1,
InputIterator2 first2,
InputIterator2 last2,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
set_union_impl(
InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, InputIterator2 last2,
Result const& result,
typename sprout::container_traits<Result>::difference_type offset
)
@ -82,11 +77,10 @@ namespace sprout {
// set_union
//
template<typename InputIterator1, typename InputIterator2, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type set_union(
InputIterator1 first1,
InputIterator1 last1,
InputIterator2 first2,
InputIterator2 last2,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
set_union(
InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, InputIterator2 last2,
Result const& result
)
{

View file

@ -13,9 +13,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename UniformRandomNumberGenerator>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type shuffle_impl(
Container const& cont,
UniformRandomNumberGenerator&& g,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
shuffle_impl(
Container const& cont, UniformRandomNumberGenerator&& g,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -30,14 +30,10 @@ namespace sprout {
// shuffle
//
template<typename Container, typename UniformRandomNumberGenerator>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type shuffle(
Container const& cont,
UniformRandomNumberGenerator&& g
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
shuffle(Container const& cont, UniformRandomNumberGenerator&& g) {
return sprout::fit::detail::shuffle_impl(
cont,
sprout::forward<UniformRandomNumberGenerator>(g),
cont, sprout::forward<UniformRandomNumberGenerator>(g),
sprout::internal_begin_offset(cont)
);
}

View file

@ -17,7 +17,8 @@ namespace sprout {
inline SPROUT_CONSTEXPR sprout::tuples::tuple<
typename sprout::fit::result_of::algorithm<Container>::type,
typename std::decay<UniformRandomNumberGenerator>::type
> shuffle_result_impl_1(
>
shuffle_result_impl_1(
Shuffled const& shuffled,
typename sprout::container_traits<Container>::difference_type offset
)
@ -39,9 +40,9 @@ namespace sprout {
inline SPROUT_CONSTEXPR sprout::tuples::tuple<
typename sprout::fit::result_of::algorithm<Container>::type,
typename std::decay<UniformRandomNumberGenerator>::type
> shuffle_result_impl(
Container const& cont,
UniformRandomNumberGenerator&& g,
>
shuffle_result_impl(
Container const& cont, UniformRandomNumberGenerator&& g,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -58,14 +59,10 @@ namespace sprout {
inline SPROUT_CONSTEXPR sprout::tuples::tuple<
typename sprout::fit::result_of::algorithm<Container>::type,
typename std::decay<UniformRandomNumberGenerator>::type
> shuffle_result(
Container const& cont,
UniformRandomNumberGenerator&& g
)
{
>
shuffle_result(Container const& cont, UniformRandomNumberGenerator&& g) {
return sprout::fit::detail::shuffle_result_impl(
cont,
sprout::forward<UniformRandomNumberGenerator>(g),
cont, sprout::forward<UniformRandomNumberGenerator>(g),
sprout::internal_begin_offset(cont)
);
}

View file

@ -12,9 +12,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type sort_impl(
Container const& cont,
Compare comp,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
sort_impl(
Container const& cont, Compare comp,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -29,17 +29,15 @@ namespace sprout {
// sort
//
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type sort(
Container const& cont,
Compare comp
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
sort(Container const& cont, Compare comp) {
return sprout::fit::detail::sort_impl(cont, comp, sprout::internal_begin_offset(cont));
}
namespace detail {
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type sort_impl(
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
sort_impl(
Container const& cont,
typename sprout::container_traits<Container>::difference_type offset
)
@ -55,10 +53,8 @@ namespace sprout {
// sort
//
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type sort(
Container const& cont
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
sort(Container const& cont) {
return sprout::fit::detail::sort_impl(cont, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -12,9 +12,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type sort_heap_impl(
Container const& cont,
Compare comp,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
sort_heap_impl(
Container const& cont, Compare comp,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -29,17 +29,15 @@ namespace sprout {
// sort_heap
//
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type sort_heap(
Container const& cont,
Compare comp
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
sort_heap(Container const& cont, Compare comp) {
return sprout::fit::detail::sort_heap_impl(cont, comp, sprout::internal_begin_offset(cont));
}
namespace detail {
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type sort_heap_impl(
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
sort_heap_impl(
Container const& cont,
typename sprout::container_traits<Container>::difference_type offset
)
@ -55,10 +53,8 @@ namespace sprout {
// sort_heap
//
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type sort_heap(
Container const& cont
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
sort_heap(Container const& cont) {
return sprout::fit::detail::sort_heap_impl(cont, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -13,9 +13,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename Predicate>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type stable_partition_impl(
Container const& cont,
Predicate pred,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
stable_partition_impl(
Container const& cont, Predicate pred,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -30,11 +30,8 @@ namespace sprout {
// stable_partition
//
template<typename Container, typename Predicate>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type stable_partition(
Container const& cont,
Predicate pred
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
stable_partition(Container const& cont, Predicate pred) {
return sprout::fit::detail::stable_partition_impl(cont, pred, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -13,11 +13,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename InputIterator, typename Result, typename Predicate>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type stable_partition_copy_impl(
InputIterator first,
InputIterator last,
Result const& result,
Predicate pred,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
stable_partition_copy_impl(
InputIterator first, InputIterator last, Result const& result, Predicate pred,
typename sprout::container_traits<Result>::difference_type offset
)
{
@ -32,13 +30,8 @@ namespace sprout {
// stable_partition_copy
//
template<typename InputIterator, typename Result, typename Predicate>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type stable_partition_copy(
InputIterator first,
InputIterator last,
Result const& result,
Predicate pred
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
stable_partition_copy(InputIterator first, InputIterator last, Result const& result, Predicate pred) {
return sprout::fit::detail::stable_partition_copy_impl(first, last, result, pred, sprout::internal_begin_offset(result));
}
} // namespace fit

View file

@ -12,9 +12,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type stable_sort_impl(
Container const& cont,
Compare comp,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
stable_sort_impl(
Container const& cont, Compare comp,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -29,17 +29,15 @@ namespace sprout {
// stable_sort
//
template<typename Container, typename Compare>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type stable_sort(
Container const& cont,
Compare comp
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
stable_sort(Container const& cont, Compare comp) {
return sprout::fit::detail::stable_sort_impl(cont, comp, sprout::internal_begin_offset(cont));
}
namespace detail {
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type stable_sort_impl(
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
stable_sort_impl(
Container const& cont,
typename sprout::container_traits<Container>::difference_type offset
)
@ -55,10 +53,8 @@ namespace sprout {
// stable_sort
//
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type stable_sort(
Container const& cont
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
stable_sort(Container const& cont) {
return sprout::fit::detail::stable_sort_impl(cont, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -13,7 +13,8 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type swap_element_impl(
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
swap_element_impl(
Container const& cont,
typename sprout::container_traits<Container>::const_iterator pos1,
typename sprout::container_traits<Container>::const_iterator pos2,
@ -31,7 +32,8 @@ namespace sprout {
// swap_element
//
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type swap_element(
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
swap_element(
Container const& cont,
typename sprout::container_traits<Container>::const_iterator pos1,
typename sprout::container_traits<Container>::const_iterator pos2

View file

@ -13,13 +13,10 @@
namespace sprout {
namespace fit {
namespace detail {
template<typename InputIterator, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type swap_element_copy_impl(
InputIterator first,
InputIterator last,
Result const& result,
InputIterator pos1,
InputIterator pos2,
template<typename ForwardIterator, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
swap_element_copy_impl(
ForwardIterator first, ForwardIterator last, Result const& result, ForwardIterator pos1, ForwardIterator pos2,
typename sprout::container_traits<Result>::difference_type offset
)
{
@ -33,15 +30,9 @@ namespace sprout {
//
// swap_element_copy
//
template<typename InputIterator, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type swap_element_copy(
InputIterator first,
InputIterator last,
Result const& result,
InputIterator pos1,
InputIterator pos2
)
{
template<typename ForwardIterator, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
swap_element_copy(ForwardIterator first, ForwardIterator last, Result const& result, ForwardIterator pos1, ForwardIterator pos2) {
return sprout::fit::detail::swap_element_copy_impl(first, last, result, pos1, pos2, sprout::internal_begin_offset(result));
}
} // namespace fit

View file

@ -14,11 +14,9 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Iterator, typename Result, typename UnaryOperation>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type transform_impl(
Iterator first,
Iterator last,
Result const& result,
UnaryOperation op,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
transform_impl(
Iterator first, Iterator last, Result const& result, UnaryOperation op,
typename sprout::container_traits<Result>::difference_type offset
)
{
@ -33,24 +31,16 @@ namespace sprout {
// transform
//
template<typename Iterator, typename Result, typename UnaryOperation>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type transform(
Iterator first,
Iterator last,
Result const& result,
UnaryOperation op
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
transform(Iterator first, Iterator last, Result const& result, UnaryOperation op) {
return sprout::fit::detail::transform_impl(first, last, result, op, sprout::internal_begin_offset(result));
}
namespace detail {
template<typename Iterator1, typename Iterator2, typename Result, typename BinaryOperation>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type transform_impl(
Iterator1 first1,
Iterator1 last1,
Iterator2 first2,
Result const& result,
BinaryOperation op,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
transform_impl(
Iterator1 first1, Iterator1 last1, Iterator2 first2, Result const& result, BinaryOperation op,
typename sprout::container_traits<Result>::difference_type offset
)
{
@ -65,14 +55,8 @@ namespace sprout {
// transform
//
template<typename Iterator1, typename Iterator2, typename Result, typename BinaryOperation>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type transform(
Iterator1 first1,
Iterator1 last1,
Iterator2 first2,
Result const& result,
BinaryOperation op
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
transform(Iterator1 first1, Iterator1 last1, Iterator2 first2, Result const& result, BinaryOperation op) {
return sprout::fit::detail::transform_impl(first1, last1, first2, result, op, sprout::internal_begin_offset(result));
}
} // namespace fit

View file

@ -12,11 +12,10 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename Generator, typename Init>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type unfold_impl(
Container const& cont,
Generator const& gen,
typename sprout::container_traits<Container>::difference_type offset,
Init const& init
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
unfold_impl(
Container const& cont, Generator const& gen, Init const& init,
typename sprout::container_traits<Container>::difference_type offset
)
{
return sprout::sub_copy(
@ -30,13 +29,9 @@ namespace sprout {
// unfold
//
template<typename Container, typename Generator, typename Init>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type unfold(
Container const& cont,
Generator const& gen,
Init const& init
)
{
return sprout::fit::detail::unfold_impl(cont, gen, sprout::internal_begin_offset(cont), init);
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
unfold(Container const& cont, Generator const& gen, Init const& init) {
return sprout::fit::detail::unfold_impl(cont, gen, init, sprout::internal_begin_offset(cont));
}
} // namespace fit
} // namespace sprout

View file

@ -13,12 +13,10 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container, typename Size, typename Generator, typename Init>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type unfold_n_impl(
Container const& cont,
Size n,
Generator const& gen,
typename sprout::container_traits<Container>::difference_type offset,
Init const& init
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
unfold_n_impl(
Container const& cont, Size n, Generator const& gen, Init const& init,
typename sprout::container_traits<Container>::difference_type offset
)
{
return sprout::sub_copy(
@ -32,14 +30,9 @@ namespace sprout {
// unfold_n
//
template<typename Container, typename Size, typename Generator, typename Init>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type unfold_n(
Container const& cont,
Size n,
Generator const& gen,
Init const& init
)
{
return sprout::fit::detail::unfold_n_impl(cont, n, gen, sprout::internal_begin_offset(cont), init);
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
unfold_n(Container const& cont, Size n, Generator const& gen, Init const& init) {
return sprout::fit::detail::unfold_n_impl(cont, n, gen, init, sprout::internal_begin_offset(cont));
}
} // namespace fit
} // namespace sprout

View file

@ -13,7 +13,8 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type unique_impl(
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
unique_impl(
Container const& cont,
typename sprout::container_traits<Container>::difference_type offset
)
@ -29,18 +30,16 @@ namespace sprout {
// unique
//
template<typename Container>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type unique(
Container const& cont
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
unique(Container const& cont) {
return sprout::fit::detail::unique_impl(cont, sprout::internal_begin_offset(cont));
}
namespace detail {
template<typename Container, typename BinaryPredicate>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type unique_impl(
Container const& cont,
BinaryPredicate pred,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
unique_impl(
Container const& cont, BinaryPredicate pred,
typename sprout::container_traits<Container>::difference_type offset
)
{
@ -55,11 +54,8 @@ namespace sprout {
// unique
//
template<typename Container, typename BinaryPredicate>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type unique(
Container const& cont,
BinaryPredicate pred
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Container>::type
unique(Container const& cont, BinaryPredicate pred) {
return sprout::fit::detail::unique_impl(cont, pred, sprout::internal_begin_offset(cont));
}
} // namespace fit

View file

@ -15,17 +15,19 @@ namespace sprout {
namespace fit {
namespace detail {
template<typename InputIterator, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type unique_copy_impl(
InputIterator first,
InputIterator last,
Result const& result,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
unique_copy_impl(
InputIterator first, InputIterator last, Result const& result,
typename sprout::container_traits<Result>::difference_type offset
)
{
return sprout::sub_copy(
sprout::get_internal(sprout::fixed::unique_copy(first, last, result)),
offset,
offset + NS_SSCRISK_CEL_OR_SPROUT::min(NS_SSCRISK_CEL_OR_SPROUT::distance(first, last) - sprout::detail::overlap_count(first, last), sprout::size(result))
offset + NS_SSCRISK_CEL_OR_SPROUT::min(
NS_SSCRISK_CEL_OR_SPROUT::distance(first, last) - sprout::detail::overlap_count(first, last),
sprout::size(result)
)
);
}
} // namespace detail
@ -33,29 +35,26 @@ namespace sprout {
// unique_copy
//
template<typename InputIterator, typename Result>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type unique_copy(
InputIterator first,
InputIterator last,
Result const& result
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
unique_copy(InputIterator first, InputIterator last, Result const& result) {
return sprout::fit::detail::unique_copy_impl(first, last, result, sprout::internal_begin_offset(result));
}
namespace detail {
template<typename InputIterator, typename Result, typename BinaryPredicate>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type unique_copy_impl(
InputIterator first,
InputIterator last,
Result const& result,
BinaryPredicate pred,
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
unique_copy_impl(
InputIterator first, InputIterator last, Result const& result, BinaryPredicate pred,
typename sprout::container_traits<Result>::difference_type offset
)
{
return sprout::sub_copy(
sprout::get_internal(sprout::fixed::unique_copy(first, last, result, pred)),
offset,
offset + NS_SSCRISK_CEL_OR_SPROUT::min(NS_SSCRISK_CEL_OR_SPROUT::distance(first, last) - sprout::detail::overlap_count(first, last, pred), sprout::size(result))
offset + NS_SSCRISK_CEL_OR_SPROUT::min(
NS_SSCRISK_CEL_OR_SPROUT::distance(first, last) - sprout::detail::overlap_count(first, last, pred),
sprout::size(result)
)
);
}
} // namespace detail
@ -63,13 +62,8 @@ namespace sprout {
// unique_copy
//
template<typename InputIterator, typename Result, typename BinaryPredicate>
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type unique_copy(
InputIterator first,
InputIterator last,
Result const& result,
BinaryPredicate pred
)
{
inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm<Result>::type
unique_copy(InputIterator first, InputIterator last, Result const& result, BinaryPredicate pred) {
return sprout::fit::detail::unique_copy_impl(first, last, result, pred, sprout::internal_begin_offset(result));
}
} // namespace fit