diff --git a/sprout/adapt/sscrisk/cel/array.hpp b/sprout/adapt/sscrisk/cel/array.hpp index 68449eca..08b53f17 100644 --- a/sprout/adapt/sscrisk/cel/array.hpp +++ b/sprout/adapt/sscrisk/cel/array.hpp @@ -3,17 +3,15 @@ #include #include -#include #if SPROUT_USE_INDEX_ITERATOR_IMPLEMENTATION # include # include -# include -# include +# include # include #endif -namespace sprout { #if SPROUT_USE_INDEX_ITERATOR_IMPLEMENTATION +namespace sprout { // // container_traits // @@ -25,47 +23,37 @@ namespace sprout { typedef sprout::index_iterator&> iterator; typedef sprout::index_iterator const&> const_iterator; }; +} // namespace sprout +namespace sprout_adl { // - // begin + // range_begin // template - inline typename sprout::container_traits >::iterator begin(sscrisk::cel::array& cont) { + inline typename sprout::container_traits >::iterator + range_begin(sscrisk::cel::array& cont) { return typename sprout::container_traits >::iterator(cont, 0); } template - inline SPROUT_CONSTEXPR typename sprout::container_traits >::const_iterator begin(sscrisk::cel::array const& cont) { + inline SPROUT_CONSTEXPR typename sprout::container_traits >::const_iterator + range_begin(sscrisk::cel::array const& cont) { return typename sprout::container_traits >::const_iterator(cont, 0); } // - // cbegin + // range_end // template - inline SPROUT_CONSTEXPR typename sprout::container_traits >::const_iterator cbegin(sscrisk::cel::array const& cont) { - return typename sprout::container_traits >::const_iterator(cont, 0); - } - - // - // end - // - template - inline typename sprout::container_traits >::iterator end(sscrisk::cel::array& cont) { + inline typename sprout::container_traits >::iterator + range_end(sscrisk::cel::array& cont) { return typename sprout::container_traits >::iterator(cont, cont.size()); } template - inline SPROUT_CONSTEXPR typename sprout::container_traits >::const_iterator end(sscrisk::cel::array const& cont) { - return typename sprout::container_traits >::const_iterator(cont, cont.size()); - } - - // - // cend - // - template - inline SPROUT_CONSTEXPR typename sprout::container_traits >::const_iterator cend(sscrisk::cel::array const& cont) { + inline SPROUT_CONSTEXPR typename sprout::container_traits >::const_iterator + range_end(sscrisk::cel::array const& cont) { return typename sprout::container_traits >::const_iterator(cont, cont.size()); } +} // namespace sprout_adl #endif -} // namespace sprout #endif // #ifndef SPROUT_ADAPT_SSCRISK_CEL_ARRAY_HPP diff --git a/sprout/adl/not_found.hpp b/sprout/adl/not_found.hpp new file mode 100644 index 00000000..5770dbee --- /dev/null +++ b/sprout/adl/not_found.hpp @@ -0,0 +1,13 @@ +#ifndef SPROUT_ADL_NOT_FOUND_HPP +#define SPROUT_ADL_NOT_FOUND_HPP + +#include + +namespace sprout { + // + // adl_not_found + // + struct adl_not_found {}; +} // namespace sprout + +#endif // #ifndef SPROUT_ADL_NOT_FOUND_HPP diff --git a/sprout/algorithm/fit/bogo_sort.hpp b/sprout/algorithm/fit/bogo_sort.hpp index c1d95797..f0f61c08 100644 --- a/sprout/algorithm/fit/bogo_sort.hpp +++ b/sprout/algorithm/fit/bogo_sort.hpp @@ -12,10 +12,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type bogo_sort_impl( - Container const& cont, - UniformRandomNumberGenerator&& g, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + bogo_sort_impl( + Container const& cont, UniformRandomNumberGenerator&& g, Compare comp, typename sprout::container_traits::difference_type offset ) { @@ -30,25 +29,19 @@ namespace sprout { // bogo_sort // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type bogo_sort( - Container const& cont, - UniformRandomNumberGenerator&& g, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + bogo_sort(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) { return sprout::fit::detail::bogo_sort_impl( - cont, - sprout::forward(g), - comp, + cont, sprout::forward(g), comp, sprout::internal_begin_offset(cont) ); } namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type bogo_sort_impl( - Container const& cont, - UniformRandomNumberGenerator&& g, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + bogo_sort_impl( + Container const& cont, UniformRandomNumberGenerator&& g, typename sprout::container_traits::difference_type offset ) { @@ -63,14 +56,10 @@ namespace sprout { // bogo_sort // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type bogo_sort( - Container const& cont, - UniformRandomNumberGenerator&& g - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + bogo_sort(Container const& cont, UniformRandomNumberGenerator&& g) { return sprout::fit::detail::bogo_sort_impl( - cont, - sprout::forward(g), + cont, sprout::forward(g), sprout::internal_begin_offset(cont) ); } diff --git a/sprout/algorithm/fit/bogo_sort_result.hpp b/sprout/algorithm/fit/bogo_sort_result.hpp index e091fe1c..8fe44f6d 100644 --- a/sprout/algorithm/fit/bogo_sort_result.hpp +++ b/sprout/algorithm/fit/bogo_sort_result.hpp @@ -17,7 +17,8 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fit::result_of::algorithm::type, typename std::decay::type - > bogo_sort_result_impl_1( + > + bogo_sort_result_impl_1( Sorted const& sorted, typename sprout::container_traits::difference_type offset ) @@ -39,10 +40,9 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fit::result_of::algorithm::type, typename std::decay::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::difference_type offset ) { @@ -59,16 +59,9 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fit::result_of::algorithm::type, typename std::decay::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(g), - comp, + cont, sprout::forward(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::type, typename std::decay::type - > bogo_sort_result_impl( - Container const& cont, - UniformRandomNumberGenerator&& g, + > + bogo_sort_result_impl( + Container const& cont, UniformRandomNumberGenerator&& g, typename sprout::container_traits::difference_type offset ) { @@ -97,14 +90,10 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fit::result_of::algorithm::type, typename std::decay::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(g), + cont, sprout::forward(g), sprout::internal_begin_offset(cont) ); } diff --git a/sprout/algorithm/fit/bozo_sort.hpp b/sprout/algorithm/fit/bozo_sort.hpp index 846265cd..3acf4056 100644 --- a/sprout/algorithm/fit/bozo_sort.hpp +++ b/sprout/algorithm/fit/bozo_sort.hpp @@ -12,10 +12,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type bozo_sort_impl( - Container const& cont, - UniformRandomNumberGenerator&& g, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + bozo_sort_impl( + Container const& cont, UniformRandomNumberGenerator&& g, Compare comp, typename sprout::container_traits::difference_type offset ) { @@ -30,25 +29,19 @@ namespace sprout { // bozo_sort // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type bozo_sort( - Container const& cont, - UniformRandomNumberGenerator&& g, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + bozo_sort(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) { return sprout::fit::detail::bozo_sort_impl( - cont, - sprout::forward(g), - comp, + cont, sprout::forward(g), comp, sprout::internal_begin_offset(cont) ); } namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type bozo_sort_impl( - Container const& cont, - UniformRandomNumberGenerator&& g, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + bozo_sort_impl( + Container const& cont, UniformRandomNumberGenerator&& g, typename sprout::container_traits::difference_type offset ) { @@ -63,14 +56,10 @@ namespace sprout { // bozo_sort // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type bozo_sort( - Container const& cont, - UniformRandomNumberGenerator&& g - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + bozo_sort(Container const& cont, UniformRandomNumberGenerator&& g) { return sprout::fit::detail::bozo_sort_impl( - cont, - sprout::forward(g), + cont, sprout::forward(g), sprout::internal_begin_offset(cont) ); } diff --git a/sprout/algorithm/fit/bozo_sort_result.hpp b/sprout/algorithm/fit/bozo_sort_result.hpp index cab77654..7f18d3e4 100644 --- a/sprout/algorithm/fit/bozo_sort_result.hpp +++ b/sprout/algorithm/fit/bozo_sort_result.hpp @@ -17,7 +17,8 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fit::result_of::algorithm::type, typename std::decay::type - > bozo_sort_result_impl_1( + > + bozo_sort_result_impl_1( Sorted const& sorted, typename sprout::container_traits::difference_type offset ) @@ -39,10 +40,9 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fit::result_of::algorithm::type, typename std::decay::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::difference_type offset ) { @@ -59,16 +59,10 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fit::result_of::algorithm::type, typename std::decay::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(g), - comp, + cont, sprout::forward(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::type, typename std::decay::type - > bozo_sort_result_impl( - Container const& cont, - UniformRandomNumberGenerator&& g, + > + bozo_sort_result_impl( + Container const& cont, UniformRandomNumberGenerator&& g, typename sprout::container_traits::difference_type offset ) { @@ -97,14 +91,10 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fit::result_of::algorithm::type, typename std::decay::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(g), + cont, sprout::forward(g), sprout::internal_begin_offset(cont) ); } diff --git a/sprout/algorithm/fit/copy.hpp b/sprout/algorithm/fit/copy.hpp index 0e7f2faf..bab9403d 100644 --- a/sprout/algorithm/fit/copy.hpp +++ b/sprout/algorithm/fit/copy.hpp @@ -14,10 +14,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type copy_impl( - InputIterator first, - InputIterator last, - Result const& result, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + copy_impl( + InputIterator first, InputIterator last, Result const& result, typename sprout::container_traits::difference_type offset ) { @@ -32,12 +31,8 @@ namespace sprout { // copy // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type copy( - InputIterator first, - InputIterator last, - Result const& result - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 diff --git a/sprout/algorithm/fit/copy_backward.hpp b/sprout/algorithm/fit/copy_backward.hpp index 90cfeb53..dba150ae 100644 --- a/sprout/algorithm/fit/copy_backward.hpp +++ b/sprout/algorithm/fit/copy_backward.hpp @@ -14,10 +14,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type copy_backward_impl( - BidirectionalIterator first, - BidirectionalIterator last, - Result const& result, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + copy_backward_impl( + BidirectionalIterator first, BidirectionalIterator last, Result const& result, typename sprout::container_traits::difference_type offset ) { @@ -32,12 +31,8 @@ namespace sprout { // copy_backward // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type copy_backward( - BidirectionalIterator first, - BidirectionalIterator last, - Result const& result - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 diff --git a/sprout/algorithm/fit/copy_if.hpp b/sprout/algorithm/fit/copy_if.hpp index 2a312488..ee2f2078 100644 --- a/sprout/algorithm/fit/copy_if.hpp +++ b/sprout/algorithm/fit/copy_if.hpp @@ -13,11 +13,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type copy_if_impl( - InputIterator first, - InputIterator last, - Result const& result, - Predicate pred, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + copy_if_impl( + InputIterator first, InputIterator last, Result const& result, Predicate pred, typename sprout::container_traits::difference_type offset ) { @@ -32,13 +30,8 @@ namespace sprout { // copy_if // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type copy_if( - InputIterator first, - InputIterator last, - Result const& result, - Predicate pred - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 diff --git a/sprout/algorithm/fit/copy_n.hpp b/sprout/algorithm/fit/copy_n.hpp index 53b1722f..da25c6c3 100644 --- a/sprout/algorithm/fit/copy_n.hpp +++ b/sprout/algorithm/fit/copy_n.hpp @@ -13,10 +13,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type copy_n_impl( - InputIterator first, - Size n, - Result const& result, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + copy_n_impl( + InputIterator first, Size n, Result const& result, typename sprout::container_traits::difference_type offset ) { @@ -31,12 +30,8 @@ namespace sprout { // copy_n // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type copy_n( - InputIterator first, - Size n, - Result const& result - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 diff --git a/sprout/algorithm/fit/fill.hpp b/sprout/algorithm/fit/fill.hpp index f4d9b585..743643a1 100644 --- a/sprout/algorithm/fit/fill.hpp +++ b/sprout/algorithm/fit/fill.hpp @@ -12,9 +12,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type fill_impl( - Container const& cont, - T const& value, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + fill_impl( + Container const& cont, T const& value, typename sprout::container_traits::difference_type offset ) { @@ -29,11 +29,8 @@ namespace sprout { // fill // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type fill( - Container const& cont, - T const& value - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + fill(Container const& cont, T const& value) { return sprout::fit::detail::fill_impl(cont, value, sprout::internal_begin_offset(cont)); } } // namespace fit diff --git a/sprout/algorithm/fit/fill_n.hpp b/sprout/algorithm/fit/fill_n.hpp index 9b6e2374..3d6da6d8 100644 --- a/sprout/algorithm/fit/fill_n.hpp +++ b/sprout/algorithm/fit/fill_n.hpp @@ -13,10 +13,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type fill_n_impl( - Container const& cont, - Size n, - T const& value, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + fill_n_impl( + Container const& cont, Size n, T const& value, typename sprout::container_traits::difference_type offset ) { @@ -31,12 +30,8 @@ namespace sprout { // fill_n // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type fill_n( - Container const& cont, - Size n, - T const& value - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 diff --git a/sprout/algorithm/fit/generate.hpp b/sprout/algorithm/fit/generate.hpp index 3d28808e..3c56a596 100644 --- a/sprout/algorithm/fit/generate.hpp +++ b/sprout/algorithm/fit/generate.hpp @@ -12,9 +12,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type generate_impl( - Container const& cont, - Generator const& gen, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + generate_impl( + Container const& cont, Generator const& gen, typename sprout::container_traits::difference_type offset ) { @@ -29,11 +29,8 @@ namespace sprout { // generate // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type generate( - Container const& cont, - Generator const& gen - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + generate(Container const& cont, Generator const& gen) { return sprout::fit::detail::generate_impl(cont, gen, sprout::internal_begin_offset(cont)); } } // namespace fit diff --git a/sprout/algorithm/fit/inplace_merge.hpp b/sprout/algorithm/fit/inplace_merge.hpp index 00af1993..add52cdb 100644 --- a/sprout/algorithm/fit/inplace_merge.hpp +++ b/sprout/algorithm/fit/inplace_merge.hpp @@ -12,10 +12,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type inplace_merge_impl( - Container const& cont, - typename sprout::container_traits::const_iterator middle, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + inplace_merge_impl( + Container const& cont, typename sprout::container_traits::const_iterator middle, Compare comp, typename sprout::container_traits::difference_type offset ) { @@ -30,20 +29,16 @@ namespace sprout { // inplace_merge // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type inplace_merge( - Container const& cont, - typename sprout::container_traits::const_iterator middle, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + inplace_merge(Container const& cont, typename sprout::container_traits::const_iterator middle, Compare comp) { return sprout::fit::detail::inplace_merge_impl(cont, middle, comp, sprout::internal_begin_offset(cont)); } namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type inplace_merge_impl( - Container const& cont, - typename sprout::container_traits::const_iterator middle, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + inplace_merge_impl( + Container const& cont, typename sprout::container_traits::const_iterator middle, typename sprout::container_traits::difference_type offset ) { @@ -58,11 +53,8 @@ namespace sprout { // inplace_merge // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type inplace_merge( - Container const& cont, - typename sprout::container_traits::const_iterator middle - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + inplace_merge(Container const& cont, typename sprout::container_traits::const_iterator middle) { return sprout::fit::detail::inplace_merge_impl(cont, middle, sprout::internal_begin_offset(cont)); } } // namespace fit diff --git a/sprout/algorithm/fit/make_heap.hpp b/sprout/algorithm/fit/make_heap.hpp index 14592238..8f377bda 100644 --- a/sprout/algorithm/fit/make_heap.hpp +++ b/sprout/algorithm/fit/make_heap.hpp @@ -12,9 +12,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type make_heap_impl( - Container const& cont, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + make_heap_impl( + Container const& cont, Compare comp, typename sprout::container_traits::difference_type offset ) { @@ -29,17 +29,15 @@ namespace sprout { // make_heap // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type make_heap( - Container const& cont, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type make_heap_impl( + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + make_heap_impl( Container const& cont, typename sprout::container_traits::difference_type offset ) @@ -55,10 +53,8 @@ namespace sprout { // make_heap // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type make_heap( - Container const& cont - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + make_heap(Container const& cont) { return sprout::fit::detail::make_heap_impl(cont, sprout::internal_begin_offset(cont)); } } // namespace fit diff --git a/sprout/algorithm/fit/make_partial_heap.hpp b/sprout/algorithm/fit/make_partial_heap.hpp index 3d414173..5d1ea580 100644 --- a/sprout/algorithm/fit/make_partial_heap.hpp +++ b/sprout/algorithm/fit/make_partial_heap.hpp @@ -13,10 +13,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type make_partial_heap_impl( - Container const& cont, - typename sprout::container_traits::const_iterator middle, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + make_partial_heap_impl( + Container const& cont, typename sprout::container_traits::const_iterator middle, Compare comp, typename sprout::container_traits::difference_type offset ) { @@ -31,20 +30,16 @@ namespace sprout { // make_partial_heap // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type make_partial_heap( - Container const& cont, - typename sprout::container_traits::const_iterator middle, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + make_partial_heap(Container const& cont, typename sprout::container_traits::const_iterator middle, Compare comp) { return sprout::fit::detail::make_partial_heap_impl(cont, middle, comp, sprout::internal_begin_offset(cont)); } namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type make_partial_heap_impl( - Container const& cont, - typename sprout::container_traits::const_iterator middle, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + make_partial_heap_impl( + Container const& cont, typename sprout::container_traits::const_iterator middle, typename sprout::container_traits::difference_type offset ) { @@ -59,11 +54,8 @@ namespace sprout { // make_partial_heap // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type make_partial_heap( - Container const& cont, - typename sprout::container_traits::const_iterator middle - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + make_partial_heap(Container const& cont, typename sprout::container_traits::const_iterator middle) { return sprout::fit::detail::make_partial_heap_impl(cont, middle, sprout::internal_begin_offset(cont)); } } // namespace fit diff --git a/sprout/algorithm/fit/merge.hpp b/sprout/algorithm/fit/merge.hpp index c79eb089..b9b66654 100644 --- a/sprout/algorithm/fit/merge.hpp +++ b/sprout/algorithm/fit/merge.hpp @@ -14,13 +14,11 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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::type + merge_impl( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + Result const& result, Compare comp, typename sprout::container_traits::difference_type offset ) { @@ -38,13 +36,11 @@ namespace sprout { // merge // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type merge( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, - Result const& result, - Compare comp + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type merge_impl( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + merge_impl( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, Result const& result, typename sprout::container_traits::difference_type offset ) @@ -75,11 +70,10 @@ namespace sprout { // merge // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type merge( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + merge( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, Result const& result ) { diff --git a/sprout/algorithm/fit/next_permutation.hpp b/sprout/algorithm/fit/next_permutation.hpp index dc0bce38..f7c74fbe 100644 --- a/sprout/algorithm/fit/next_permutation.hpp +++ b/sprout/algorithm/fit/next_permutation.hpp @@ -33,8 +33,7 @@ namespace sprout { template inline SPROUT_CONSTEXPR sprout::pair::type, bool> next_permutation_impl( - Container const& cont, - Compare comp, + Container const& cont, Compare comp, typename sprout::container_traits::difference_type offset ) { @@ -46,11 +45,7 @@ namespace sprout { // template inline SPROUT_CONSTEXPR sprout::pair::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 inline SPROUT_CONSTEXPR sprout::pair::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 diff --git a/sprout/algorithm/fit/nth_element.hpp b/sprout/algorithm/fit/nth_element.hpp index cc0ecdd8..958788f2 100644 --- a/sprout/algorithm/fit/nth_element.hpp +++ b/sprout/algorithm/fit/nth_element.hpp @@ -13,10 +13,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type nth_element_impl( - Container const& cont, - typename sprout::container_traits::const_iterator nth, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + nth_element_impl( + Container const& cont, typename sprout::container_traits::const_iterator nth, Compare comp, typename sprout::container_traits::difference_type offset ) { @@ -31,20 +30,16 @@ namespace sprout { // nth_element // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type nth_element( - Container const& cont, - typename sprout::container_traits::const_iterator nth, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + nth_element(Container const& cont, typename sprout::container_traits::const_iterator nth, Compare comp) { return sprout::fit::detail::nth_element_impl(cont, nth, comp, sprout::internal_begin_offset(cont)); } namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type nth_element_impl( - Container const& cont, - typename sprout::container_traits::const_iterator nth, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + nth_element_impl( + Container const& cont, typename sprout::container_traits::const_iterator nth, typename sprout::container_traits::difference_type offset ) { @@ -59,11 +54,8 @@ namespace sprout { // nth_element // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type nth_element( - Container const& cont, - typename sprout::container_traits::const_iterator nth - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + nth_element(Container const& cont, typename sprout::container_traits::const_iterator nth) { return sprout::fit::detail::nth_element_impl(cont, nth, sprout::internal_begin_offset(cont)); } } // namespace fit diff --git a/sprout/algorithm/fit/partial_sort.hpp b/sprout/algorithm/fit/partial_sort.hpp index 8ed33578..0f4ded07 100644 --- a/sprout/algorithm/fit/partial_sort.hpp +++ b/sprout/algorithm/fit/partial_sort.hpp @@ -13,10 +13,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type partial_sort_impl( - Container const& cont, - typename sprout::container_traits::const_iterator middle, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + partial_sort_impl( + Container const& cont, typename sprout::container_traits::const_iterator middle, Compare comp, typename sprout::container_traits::difference_type offset ) { @@ -31,20 +30,16 @@ namespace sprout { // partial_sort // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type partial_sort( - Container const& cont, - typename sprout::container_traits::const_iterator middle, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + partial_sort(Container const& cont, typename sprout::container_traits::const_iterator middle, Compare comp) { return sprout::fit::detail::partial_sort_impl(cont, middle, comp, sprout::internal_begin_offset(cont)); } namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type partial_sort_impl( - Container const& cont, - typename sprout::container_traits::const_iterator middle, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + partial_sort_impl( + Container const& cont, typename sprout::container_traits::const_iterator middle, typename sprout::container_traits::difference_type offset ) { @@ -59,11 +54,8 @@ namespace sprout { // partial_sort // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type partial_sort( - Container const& cont, - typename sprout::container_traits::const_iterator middle - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + partial_sort(Container const& cont, typename sprout::container_traits::const_iterator middle) { return sprout::fit::detail::partial_sort_impl(cont, middle, sprout::internal_begin_offset(cont)); } } // namespace fit diff --git a/sprout/algorithm/fit/partition.hpp b/sprout/algorithm/fit/partition.hpp index b4024b70..e5cb7c00 100644 --- a/sprout/algorithm/fit/partition.hpp +++ b/sprout/algorithm/fit/partition.hpp @@ -13,9 +13,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type partition_impl( - Container const& cont, - Predicate pred, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + partition_impl( + Container const& cont, Predicate pred, typename sprout::container_traits::difference_type offset ) { @@ -30,11 +30,8 @@ namespace sprout { // partition // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type partition( - Container const& cont, - Predicate pred - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + partition(Container const& cont, Predicate pred) { return sprout::fit::detail::partition_impl(cont, pred, sprout::internal_begin_offset(cont)); } } // namespace fit diff --git a/sprout/algorithm/fit/partition_copy.hpp b/sprout/algorithm/fit/partition_copy.hpp index 90fc4644..c908a15c 100644 --- a/sprout/algorithm/fit/partition_copy.hpp +++ b/sprout/algorithm/fit/partition_copy.hpp @@ -15,11 +15,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type partition_copy_impl( - InputIterator first, - InputIterator last, - Result const& result, - Predicate pred, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + partition_copy_impl( + InputIterator first, InputIterator last, Result const& result, Predicate pred, typename sprout::container_traits::difference_type offset ) { @@ -41,13 +39,8 @@ namespace sprout { // partition_copy // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type partition_copy( - InputIterator first, - InputIterator last, - Result const& result, - Predicate pred - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 diff --git a/sprout/algorithm/fit/pop_heap.hpp b/sprout/algorithm/fit/pop_heap.hpp index ab3149f7..11c1a6f8 100644 --- a/sprout/algorithm/fit/pop_heap.hpp +++ b/sprout/algorithm/fit/pop_heap.hpp @@ -12,9 +12,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type pop_heap_impl( - Container const& cont, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + pop_heap_impl( + Container const& cont, Compare comp, typename sprout::container_traits::difference_type offset ) { @@ -29,17 +29,15 @@ namespace sprout { // pop_heap // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type pop_heap( - Container const& cont, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type pop_heap_impl( + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + pop_heap_impl( Container const& cont, typename sprout::container_traits::difference_type offset ) @@ -55,10 +53,8 @@ namespace sprout { // pop_heap // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type pop_heap( - Container const& cont - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + pop_heap(Container const& cont) { return sprout::fit::detail::pop_heap_impl(cont, sprout::internal_begin_offset(cont)); } } // namespace fit diff --git a/sprout/algorithm/fit/prev_permutation.hpp b/sprout/algorithm/fit/prev_permutation.hpp index c73ba6dd..2a6880d8 100644 --- a/sprout/algorithm/fit/prev_permutation.hpp +++ b/sprout/algorithm/fit/prev_permutation.hpp @@ -15,8 +15,7 @@ namespace sprout { template inline SPROUT_CONSTEXPR sprout::pair::type, bool> prev_permutation_impl_1( - Container const& cont, - Permutation const& perm, + Container const& cont, Permutation const& perm, typename sprout::container_traits::difference_type offset ) { @@ -33,8 +32,7 @@ namespace sprout { template inline SPROUT_CONSTEXPR sprout::pair::type, bool> prev_permutation_impl( - Container const& cont, - Compare comp, + Container const& cont, Compare comp, typename sprout::container_traits::difference_type offset ) { @@ -46,11 +44,7 @@ namespace sprout { // template inline SPROUT_CONSTEXPR sprout::pair::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 inline SPROUT_CONSTEXPR sprout::pair::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 diff --git a/sprout/algorithm/fit/push_heap.hpp b/sprout/algorithm/fit/push_heap.hpp index 9c8142ff..d6892f62 100644 --- a/sprout/algorithm/fit/push_heap.hpp +++ b/sprout/algorithm/fit/push_heap.hpp @@ -12,9 +12,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type push_heap_impl( - Container const& cont, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + push_heap_impl( + Container const& cont, Compare comp, typename sprout::container_traits::difference_type offset ) { @@ -29,17 +29,15 @@ namespace sprout { // push_heap // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type push_heap( - Container const& cont, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type push_heap_impl( + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + push_heap_impl( Container const& cont, typename sprout::container_traits::difference_type offset ) @@ -55,10 +53,8 @@ namespace sprout { // push_heap // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type push_heap( - Container const& cont - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + push_heap(Container const& cont) { return sprout::fit::detail::push_heap_impl(cont, sprout::internal_begin_offset(cont)); } } // namespace fit diff --git a/sprout/algorithm/fit/random_swap.hpp b/sprout/algorithm/fit/random_swap.hpp index d1ea906e..4f7670bb 100644 --- a/sprout/algorithm/fit/random_swap.hpp +++ b/sprout/algorithm/fit/random_swap.hpp @@ -13,9 +13,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type random_swap_impl( - Container const& cont, - UniformRandomNumberGenerator&& g, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + random_swap_impl( + Container const& cont, UniformRandomNumberGenerator&& g, typename sprout::container_traits::difference_type offset ) { @@ -30,14 +30,10 @@ namespace sprout { // random_swap // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type random_swap( - Container const& cont, - UniformRandomNumberGenerator&& g - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + random_swap(Container const& cont, UniformRandomNumberGenerator&& g) { return sprout::fit::detail::random_swap_impl( - cont, - sprout::forward(g), + cont, sprout::forward(g), sprout::internal_begin_offset(cont) ); } diff --git a/sprout/algorithm/fit/random_swap_result.hpp b/sprout/algorithm/fit/random_swap_result.hpp index 33bdf659..c682bf85 100644 --- a/sprout/algorithm/fit/random_swap_result.hpp +++ b/sprout/algorithm/fit/random_swap_result.hpp @@ -17,7 +17,8 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fit::result_of::algorithm::type, typename std::decay::type - > random_swap_result_impl_1( + > + random_swap_result_impl_1( Shuffled const& random_swapd, typename sprout::container_traits::difference_type offset ) @@ -39,9 +40,9 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fit::result_of::algorithm::type, typename std::decay::type - > random_swap_result_impl( - Container const& cont, - UniformRandomNumberGenerator&& g, + > + random_swap_result_impl( + Container const& cont, UniformRandomNumberGenerator&& g, typename sprout::container_traits::difference_type offset ) { @@ -58,14 +59,10 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fit::result_of::algorithm::type, typename std::decay::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(g), + cont, sprout::forward(g), sprout::internal_begin_offset(cont) ); } diff --git a/sprout/algorithm/fit/recurrence.hpp b/sprout/algorithm/fit/recurrence.hpp index a3c3fd3e..0a01ad46 100644 --- a/sprout/algorithm/fit/recurrence.hpp +++ b/sprout/algorithm/fit/recurrence.hpp @@ -12,9 +12,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type recurrence_impl( - Container const& cont, - Generator const& gen, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + recurrence_impl( + Container const& cont, Generator const& gen, typename sprout::container_traits::difference_type offset, Inits const&... inits ) @@ -30,12 +30,8 @@ namespace sprout { // recurrence // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type recurrence( - Container const& cont, - Generator const& gen, - Inits const&... inits - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 diff --git a/sprout/algorithm/fit/recurrence_n.hpp b/sprout/algorithm/fit/recurrence_n.hpp index 03dfb490..5055584c 100644 --- a/sprout/algorithm/fit/recurrence_n.hpp +++ b/sprout/algorithm/fit/recurrence_n.hpp @@ -13,10 +13,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type recurrence_n_impl( - Container const& cont, - Size n, - Generator const& gen, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + recurrence_n_impl( + Container const& cont, Size n, Generator const& gen, typename sprout::container_traits::difference_type offset, Inits const&... inits ) @@ -32,13 +31,8 @@ namespace sprout { // recurrence_n // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type recurrence_n( - Container const& cont, - Size n, - Generator const& gen, - Inits const&... inits - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 diff --git a/sprout/algorithm/fit/remove.hpp b/sprout/algorithm/fit/remove.hpp index ee3b5022..7cb838ed 100644 --- a/sprout/algorithm/fit/remove.hpp +++ b/sprout/algorithm/fit/remove.hpp @@ -13,9 +13,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type remove_impl( - Container const& cont, - T const& value, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + remove_impl( + Container const& cont, T const& value, typename sprout::container_traits::difference_type offset ) { @@ -30,11 +30,8 @@ namespace sprout { // remove // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type remove( - Container const& cont, - T const& value - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + remove(Container const& cont, T const& value) { return sprout::fit::detail::remove_impl(cont, value, sprout::internal_begin_offset(cont)); } } // namespace fit diff --git a/sprout/algorithm/fit/remove_copy.hpp b/sprout/algorithm/fit/remove_copy.hpp index 210fffad..99f8e01f 100644 --- a/sprout/algorithm/fit/remove_copy.hpp +++ b/sprout/algorithm/fit/remove_copy.hpp @@ -14,18 +14,19 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type remove_copy_impl( - InputIterator first, - InputIterator last, - Result const& result, - T const& value, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + remove_copy_impl( + InputIterator first, InputIterator last, Result const& result, T const& value, typename sprout::container_traits::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 - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type remove_copy( - InputIterator first, - InputIterator last, - Result const& result, - T const& value - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 diff --git a/sprout/algorithm/fit/remove_copy_if.hpp b/sprout/algorithm/fit/remove_copy_if.hpp index 053fe216..3dd6f7a4 100644 --- a/sprout/algorithm/fit/remove_copy_if.hpp +++ b/sprout/algorithm/fit/remove_copy_if.hpp @@ -14,18 +14,19 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type remove_copy_if_impl( - InputIterator first, - InputIterator last, - Result const& result, - Predicate pred, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + remove_copy_if_impl( + InputIterator first, InputIterator last, Result const& result, Predicate pred, typename sprout::container_traits::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 - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type remove_copy_if( - InputIterator first, - InputIterator last, - Result const& result, - Predicate pred - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 diff --git a/sprout/algorithm/fit/remove_if.hpp b/sprout/algorithm/fit/remove_if.hpp index 1c61dc29..a0315f86 100644 --- a/sprout/algorithm/fit/remove_if.hpp +++ b/sprout/algorithm/fit/remove_if.hpp @@ -13,9 +13,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type remove_if_impl( - Container const& cont, - Predicate pred, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + remove_if_impl( + Container const& cont, Predicate pred, typename sprout::container_traits::difference_type offset ) { @@ -30,11 +30,8 @@ namespace sprout { // remove_if // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type remove_if( - Container const& cont, - Predicate pred - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + remove_if(Container const& cont, Predicate pred) { return sprout::fit::detail::remove_if_impl(cont, pred, sprout::internal_begin_offset(cont)); } } // namespace fit diff --git a/sprout/algorithm/fit/replace.hpp b/sprout/algorithm/fit/replace.hpp index 6758cb61..1a44031b 100644 --- a/sprout/algorithm/fit/replace.hpp +++ b/sprout/algorithm/fit/replace.hpp @@ -12,10 +12,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type replace_impl( - Container const& cont, - T const& old_value, - T const& new_value, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + replace_impl( + Container const& cont, T const& old_value, T const& new_value, typename sprout::container_traits::difference_type offset ) { @@ -30,12 +29,8 @@ namespace sprout { // replace // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type replace( - Container const& cont, - T const& old_value, - T const& new_value - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 diff --git a/sprout/algorithm/fit/replace_copy.hpp b/sprout/algorithm/fit/replace_copy.hpp index 56e022b7..d8b5f0f4 100644 --- a/sprout/algorithm/fit/replace_copy.hpp +++ b/sprout/algorithm/fit/replace_copy.hpp @@ -14,12 +14,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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::type + replace_copy_impl( + InputIterator first, InputIterator last, Result const& result, T const& old_value, T const& new_value, typename sprout::container_traits::difference_type offset ) { @@ -34,14 +31,8 @@ namespace sprout { // replace_copy // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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::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 diff --git a/sprout/algorithm/fit/replace_copy_if.hpp b/sprout/algorithm/fit/replace_copy_if.hpp index baaf45cf..8cf2cf79 100644 --- a/sprout/algorithm/fit/replace_copy_if.hpp +++ b/sprout/algorithm/fit/replace_copy_if.hpp @@ -14,12 +14,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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::type + replace_copy_if_impl( + InputIterator first, InputIterator last, Result const& result, Predicate pred, T const& new_value, typename sprout::container_traits::difference_type offset ) { @@ -34,14 +31,8 @@ namespace sprout { // replace_copy_if // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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::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 diff --git a/sprout/algorithm/fit/replace_if.hpp b/sprout/algorithm/fit/replace_if.hpp index 86b1445d..2b830945 100644 --- a/sprout/algorithm/fit/replace_if.hpp +++ b/sprout/algorithm/fit/replace_if.hpp @@ -12,10 +12,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type replace_if_impl( - Container const& cont, - Predicate pred, - T const& new_value, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + replace_if_impl( + Container const& cont, Predicate pred, T const& new_value, typename sprout::container_traits::difference_type offset ) { @@ -30,12 +29,8 @@ namespace sprout { // replace_if // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type replace_if( - Container const& cont, - Predicate pred, - T const& new_value - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 diff --git a/sprout/algorithm/fit/reverse.hpp b/sprout/algorithm/fit/reverse.hpp index fee0a737..9ad44c1f 100644 --- a/sprout/algorithm/fit/reverse.hpp +++ b/sprout/algorithm/fit/reverse.hpp @@ -12,7 +12,8 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type reverse_impl( + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + reverse_impl( Container const& cont, typename sprout::container_traits::difference_type offset ) @@ -28,10 +29,8 @@ namespace sprout { // reverse // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type reverse( - Container const& cont - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + reverse(Container const& cont) { return sprout::fit::detail::reverse_impl(cont, sprout::internal_begin_offset(cont)); } } // namespace fit diff --git a/sprout/algorithm/fit/reverse_copy.hpp b/sprout/algorithm/fit/reverse_copy.hpp index 87f62f55..b2b6db89 100644 --- a/sprout/algorithm/fit/reverse_copy.hpp +++ b/sprout/algorithm/fit/reverse_copy.hpp @@ -14,10 +14,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type reverse_copy_impl( - BidirectionalIterator first, - BidirectionalIterator last, - Result const& result, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + reverse_copy_impl( + BidirectionalIterator first, BidirectionalIterator last, Result const& result, typename sprout::container_traits::difference_type offset ) { @@ -32,12 +31,8 @@ namespace sprout { // reverse_copy // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type reverse_copy( - BidirectionalIterator first, - BidirectionalIterator last, - Result const& result - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 diff --git a/sprout/algorithm/fit/rotate.hpp b/sprout/algorithm/fit/rotate.hpp index 725e6126..c21e59e4 100644 --- a/sprout/algorithm/fit/rotate.hpp +++ b/sprout/algorithm/fit/rotate.hpp @@ -12,9 +12,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type rotate_impl( - Container const& cont, - typename sprout::container_traits::const_iterator middle, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + rotate_impl( + Container const& cont, typename sprout::container_traits::const_iterator middle, typename sprout::container_traits::difference_type offset ) { @@ -29,11 +29,8 @@ namespace sprout { // rotate // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type rotate( - Container const& cont, - typename sprout::container_traits::const_iterator middle - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + rotate(Container const& cont, typename sprout::container_traits::const_iterator middle) { return sprout::fit::detail::rotate_impl(cont, middle, sprout::internal_begin_offset(cont)); } } // namespace fit diff --git a/sprout/algorithm/fit/rotate_copy.hpp b/sprout/algorithm/fit/rotate_copy.hpp index a1dffafe..2b33ca29 100644 --- a/sprout/algorithm/fit/rotate_copy.hpp +++ b/sprout/algorithm/fit/rotate_copy.hpp @@ -14,11 +14,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type rotate_copy_impl( - ForwardIterator first, - ForwardIterator middle, - ForwardIterator last, - Result const& result, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + rotate_copy_impl( + ForwardIterator first, ForwardIterator middle, ForwardIterator last, Result const& result, typename sprout::container_traits::difference_type offset ) { @@ -33,13 +31,8 @@ namespace sprout { // rotate_copy // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type rotate_copy( - ForwardIterator first, - ForwardIterator middle, - ForwardIterator last, - Result const& result - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 diff --git a/sprout/algorithm/fit/set_difference.hpp b/sprout/algorithm/fit/set_difference.hpp index a7d83ae7..f7300486 100644 --- a/sprout/algorithm/fit/set_difference.hpp +++ b/sprout/algorithm/fit/set_difference.hpp @@ -15,13 +15,11 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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::type + set_difference_impl( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + Result const& result, Compare comp, typename sprout::container_traits::difference_type offset ) { @@ -41,13 +39,11 @@ namespace sprout { // set_difference // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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::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 - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type set_difference_impl( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + set_difference_impl( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, Result const& result, typename sprout::container_traits::difference_type offset ) @@ -80,11 +75,10 @@ namespace sprout { // set_difference // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type set_difference( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + set_difference( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, Result const& result ) { diff --git a/sprout/algorithm/fit/set_intersection.hpp b/sprout/algorithm/fit/set_intersection.hpp index 66c84891..674aa5ac 100644 --- a/sprout/algorithm/fit/set_intersection.hpp +++ b/sprout/algorithm/fit/set_intersection.hpp @@ -14,13 +14,11 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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::type + set_intersection_impl( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + Result const& result, Compare comp, typename sprout::container_traits::difference_type offset ) { @@ -38,13 +36,11 @@ namespace sprout { // set_intersection // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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::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 - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type set_intersection_impl( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + set_intersection_impl( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, Result const& result, typename sprout::container_traits::difference_type offset ) @@ -75,11 +70,10 @@ namespace sprout { // set_intersection // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type set_intersection( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + set_intersection( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, Result const& result ) { diff --git a/sprout/algorithm/fit/set_symmetric_difference.hpp b/sprout/algorithm/fit/set_symmetric_difference.hpp index 15a22875..eceee062 100644 --- a/sprout/algorithm/fit/set_symmetric_difference.hpp +++ b/sprout/algorithm/fit/set_symmetric_difference.hpp @@ -15,13 +15,11 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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::type + set_symmetric_difference_impl( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + Result const& result, Compare comp, typename sprout::container_traits::difference_type offset ) { @@ -42,13 +40,11 @@ namespace sprout { // set_symmetric_difference // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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::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 - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type set_symmetric_difference_impl( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + set_symmetric_difference_impl( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, Result const& result, typename sprout::container_traits::difference_type offset ) @@ -82,11 +77,10 @@ namespace sprout { // set_symmetric_difference // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type set_symmetric_difference( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + set_symmetric_difference( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, Result const& result ) { diff --git a/sprout/algorithm/fit/set_union.hpp b/sprout/algorithm/fit/set_union.hpp index 4e838f44..4e89f40e 100644 --- a/sprout/algorithm/fit/set_union.hpp +++ b/sprout/algorithm/fit/set_union.hpp @@ -15,13 +15,11 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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::type + set_union_impl( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + Result const& result, Compare comp, typename sprout::container_traits::difference_type offset ) { @@ -42,13 +40,11 @@ namespace sprout { // set_union // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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::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 - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type set_union_impl( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + set_union_impl( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, Result const& result, typename sprout::container_traits::difference_type offset ) @@ -82,11 +77,10 @@ namespace sprout { // set_union // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type set_union( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + set_union( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, Result const& result ) { diff --git a/sprout/algorithm/fit/shuffle.hpp b/sprout/algorithm/fit/shuffle.hpp index 85f0399c..1dae0457 100644 --- a/sprout/algorithm/fit/shuffle.hpp +++ b/sprout/algorithm/fit/shuffle.hpp @@ -13,9 +13,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type shuffle_impl( - Container const& cont, - UniformRandomNumberGenerator&& g, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + shuffle_impl( + Container const& cont, UniformRandomNumberGenerator&& g, typename sprout::container_traits::difference_type offset ) { @@ -30,14 +30,10 @@ namespace sprout { // shuffle // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type shuffle( - Container const& cont, - UniformRandomNumberGenerator&& g - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + shuffle(Container const& cont, UniformRandomNumberGenerator&& g) { return sprout::fit::detail::shuffle_impl( - cont, - sprout::forward(g), + cont, sprout::forward(g), sprout::internal_begin_offset(cont) ); } diff --git a/sprout/algorithm/fit/shuffle_result.hpp b/sprout/algorithm/fit/shuffle_result.hpp index d0defecb..a8a41124 100644 --- a/sprout/algorithm/fit/shuffle_result.hpp +++ b/sprout/algorithm/fit/shuffle_result.hpp @@ -17,7 +17,8 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fit::result_of::algorithm::type, typename std::decay::type - > shuffle_result_impl_1( + > + shuffle_result_impl_1( Shuffled const& shuffled, typename sprout::container_traits::difference_type offset ) @@ -39,9 +40,9 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fit::result_of::algorithm::type, typename std::decay::type - > shuffle_result_impl( - Container const& cont, - UniformRandomNumberGenerator&& g, + > + shuffle_result_impl( + Container const& cont, UniformRandomNumberGenerator&& g, typename sprout::container_traits::difference_type offset ) { @@ -58,14 +59,10 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fit::result_of::algorithm::type, typename std::decay::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(g), + cont, sprout::forward(g), sprout::internal_begin_offset(cont) ); } diff --git a/sprout/algorithm/fit/sort.hpp b/sprout/algorithm/fit/sort.hpp index b71256ed..400f3c6b 100644 --- a/sprout/algorithm/fit/sort.hpp +++ b/sprout/algorithm/fit/sort.hpp @@ -12,9 +12,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type sort_impl( - Container const& cont, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + sort_impl( + Container const& cont, Compare comp, typename sprout::container_traits::difference_type offset ) { @@ -29,17 +29,15 @@ namespace sprout { // sort // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type sort( - Container const& cont, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + sort(Container const& cont, Compare comp) { return sprout::fit::detail::sort_impl(cont, comp, sprout::internal_begin_offset(cont)); } namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type sort_impl( + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + sort_impl( Container const& cont, typename sprout::container_traits::difference_type offset ) @@ -55,10 +53,8 @@ namespace sprout { // sort // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type sort( - Container const& cont - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + sort(Container const& cont) { return sprout::fit::detail::sort_impl(cont, sprout::internal_begin_offset(cont)); } } // namespace fit diff --git a/sprout/algorithm/fit/sort_heap.hpp b/sprout/algorithm/fit/sort_heap.hpp index 540a2a76..9670f59a 100644 --- a/sprout/algorithm/fit/sort_heap.hpp +++ b/sprout/algorithm/fit/sort_heap.hpp @@ -12,9 +12,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type sort_heap_impl( - Container const& cont, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + sort_heap_impl( + Container const& cont, Compare comp, typename sprout::container_traits::difference_type offset ) { @@ -29,17 +29,15 @@ namespace sprout { // sort_heap // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type sort_heap( - Container const& cont, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type sort_heap_impl( + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + sort_heap_impl( Container const& cont, typename sprout::container_traits::difference_type offset ) @@ -55,10 +53,8 @@ namespace sprout { // sort_heap // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type sort_heap( - Container const& cont - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + sort_heap(Container const& cont) { return sprout::fit::detail::sort_heap_impl(cont, sprout::internal_begin_offset(cont)); } } // namespace fit diff --git a/sprout/algorithm/fit/stable_partition.hpp b/sprout/algorithm/fit/stable_partition.hpp index 24ef2881..e52fc06c 100644 --- a/sprout/algorithm/fit/stable_partition.hpp +++ b/sprout/algorithm/fit/stable_partition.hpp @@ -13,9 +13,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type stable_partition_impl( - Container const& cont, - Predicate pred, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + stable_partition_impl( + Container const& cont, Predicate pred, typename sprout::container_traits::difference_type offset ) { @@ -30,11 +30,8 @@ namespace sprout { // stable_partition // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type stable_partition( - Container const& cont, - Predicate pred - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + stable_partition(Container const& cont, Predicate pred) { return sprout::fit::detail::stable_partition_impl(cont, pred, sprout::internal_begin_offset(cont)); } } // namespace fit diff --git a/sprout/algorithm/fit/stable_partition_copy.hpp b/sprout/algorithm/fit/stable_partition_copy.hpp index 9f7ada57..89d9e304 100644 --- a/sprout/algorithm/fit/stable_partition_copy.hpp +++ b/sprout/algorithm/fit/stable_partition_copy.hpp @@ -13,11 +13,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type stable_partition_copy_impl( - InputIterator first, - InputIterator last, - Result const& result, - Predicate pred, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + stable_partition_copy_impl( + InputIterator first, InputIterator last, Result const& result, Predicate pred, typename sprout::container_traits::difference_type offset ) { @@ -32,13 +30,8 @@ namespace sprout { // stable_partition_copy // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type stable_partition_copy( - InputIterator first, - InputIterator last, - Result const& result, - Predicate pred - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 diff --git a/sprout/algorithm/fit/stable_sort.hpp b/sprout/algorithm/fit/stable_sort.hpp index 5d4475fc..cac42d7e 100644 --- a/sprout/algorithm/fit/stable_sort.hpp +++ b/sprout/algorithm/fit/stable_sort.hpp @@ -12,9 +12,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type stable_sort_impl( - Container const& cont, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + stable_sort_impl( + Container const& cont, Compare comp, typename sprout::container_traits::difference_type offset ) { @@ -29,17 +29,15 @@ namespace sprout { // stable_sort // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type stable_sort( - Container const& cont, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type stable_sort_impl( + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + stable_sort_impl( Container const& cont, typename sprout::container_traits::difference_type offset ) @@ -55,10 +53,8 @@ namespace sprout { // stable_sort // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type stable_sort( - Container const& cont - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + stable_sort(Container const& cont) { return sprout::fit::detail::stable_sort_impl(cont, sprout::internal_begin_offset(cont)); } } // namespace fit diff --git a/sprout/algorithm/fit/swap_element.hpp b/sprout/algorithm/fit/swap_element.hpp index f4244721..abba9255 100644 --- a/sprout/algorithm/fit/swap_element.hpp +++ b/sprout/algorithm/fit/swap_element.hpp @@ -13,7 +13,8 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type swap_element_impl( + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + swap_element_impl( Container const& cont, typename sprout::container_traits::const_iterator pos1, typename sprout::container_traits::const_iterator pos2, @@ -31,7 +32,8 @@ namespace sprout { // swap_element // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type swap_element( + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + swap_element( Container const& cont, typename sprout::container_traits::const_iterator pos1, typename sprout::container_traits::const_iterator pos2 diff --git a/sprout/algorithm/fit/swap_element_copy.hpp b/sprout/algorithm/fit/swap_element_copy.hpp index 7dba7565..1abd5f63 100644 --- a/sprout/algorithm/fit/swap_element_copy.hpp +++ b/sprout/algorithm/fit/swap_element_copy.hpp @@ -13,13 +13,10 @@ namespace sprout { namespace fit { namespace detail { - template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type swap_element_copy_impl( - InputIterator first, - InputIterator last, - Result const& result, - InputIterator pos1, - InputIterator pos2, + template + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + swap_element_copy_impl( + ForwardIterator first, ForwardIterator last, Result const& result, ForwardIterator pos1, ForwardIterator pos2, typename sprout::container_traits::difference_type offset ) { @@ -33,15 +30,9 @@ namespace sprout { // // swap_element_copy // - template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type swap_element_copy( - InputIterator first, - InputIterator last, - Result const& result, - InputIterator pos1, - InputIterator pos2 - ) - { + template + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 diff --git a/sprout/algorithm/fit/transform.hpp b/sprout/algorithm/fit/transform.hpp index 2b506108..6a17afaf 100644 --- a/sprout/algorithm/fit/transform.hpp +++ b/sprout/algorithm/fit/transform.hpp @@ -14,11 +14,9 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type transform_impl( - Iterator first, - Iterator last, - Result const& result, - UnaryOperation op, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + transform_impl( + Iterator first, Iterator last, Result const& result, UnaryOperation op, typename sprout::container_traits::difference_type offset ) { @@ -33,24 +31,16 @@ namespace sprout { // transform // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type transform( - Iterator first, - Iterator last, - Result const& result, - UnaryOperation op - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type transform_impl( - Iterator1 first1, - Iterator1 last1, - Iterator2 first2, - Result const& result, - BinaryOperation op, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + transform_impl( + Iterator1 first1, Iterator1 last1, Iterator2 first2, Result const& result, BinaryOperation op, typename sprout::container_traits::difference_type offset ) { @@ -65,14 +55,8 @@ namespace sprout { // transform // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type transform( - Iterator1 first1, - Iterator1 last1, - Iterator2 first2, - Result const& result, - BinaryOperation op - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 diff --git a/sprout/algorithm/fit/unfold.hpp b/sprout/algorithm/fit/unfold.hpp index 528d8040..f133bfc1 100644 --- a/sprout/algorithm/fit/unfold.hpp +++ b/sprout/algorithm/fit/unfold.hpp @@ -12,11 +12,10 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type unfold_impl( - Container const& cont, - Generator const& gen, - typename sprout::container_traits::difference_type offset, - Init const& init + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + unfold_impl( + Container const& cont, Generator const& gen, Init const& init, + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( @@ -30,13 +29,9 @@ namespace sprout { // unfold // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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::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 diff --git a/sprout/algorithm/fit/unfold_n.hpp b/sprout/algorithm/fit/unfold_n.hpp index c9d4fd0b..20daf065 100644 --- a/sprout/algorithm/fit/unfold_n.hpp +++ b/sprout/algorithm/fit/unfold_n.hpp @@ -13,12 +13,10 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type unfold_n_impl( - Container const& cont, - Size n, - Generator const& gen, - typename sprout::container_traits::difference_type offset, - Init const& init + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + unfold_n_impl( + Container const& cont, Size n, Generator const& gen, Init const& init, + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( @@ -32,14 +30,9 @@ namespace sprout { // unfold_n // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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::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 diff --git a/sprout/algorithm/fit/unique.hpp b/sprout/algorithm/fit/unique.hpp index 8541176e..bd03f155 100644 --- a/sprout/algorithm/fit/unique.hpp +++ b/sprout/algorithm/fit/unique.hpp @@ -13,7 +13,8 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type unique_impl( + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + unique_impl( Container const& cont, typename sprout::container_traits::difference_type offset ) @@ -29,18 +30,16 @@ namespace sprout { // unique // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type unique( - Container const& cont - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + unique(Container const& cont) { return sprout::fit::detail::unique_impl(cont, sprout::internal_begin_offset(cont)); } namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type unique_impl( - Container const& cont, - BinaryPredicate pred, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + unique_impl( + Container const& cont, BinaryPredicate pred, typename sprout::container_traits::difference_type offset ) { @@ -55,11 +54,8 @@ namespace sprout { // unique // template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type unique( - Container const& cont, - BinaryPredicate pred - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + unique(Container const& cont, BinaryPredicate pred) { return sprout::fit::detail::unique_impl(cont, pred, sprout::internal_begin_offset(cont)); } } // namespace fit diff --git a/sprout/algorithm/fit/unique_copy.hpp b/sprout/algorithm/fit/unique_copy.hpp index 0e112281..0429d6ff 100644 --- a/sprout/algorithm/fit/unique_copy.hpp +++ b/sprout/algorithm/fit/unique_copy.hpp @@ -15,17 +15,19 @@ namespace sprout { namespace fit { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type unique_copy_impl( - InputIterator first, - InputIterator last, - Result const& result, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + unique_copy_impl( + InputIterator first, InputIterator last, Result const& result, typename sprout::container_traits::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 - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type unique_copy( - InputIterator first, - InputIterator last, - Result const& result - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type unique_copy_impl( - InputIterator first, - InputIterator last, - Result const& result, - BinaryPredicate pred, + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type + unique_copy_impl( + InputIterator first, InputIterator last, Result const& result, BinaryPredicate pred, typename sprout::container_traits::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 - inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::type unique_copy( - InputIterator first, - InputIterator last, - Result const& result, - BinaryPredicate pred - ) - { + inline SPROUT_CONSTEXPR typename sprout::fit::result_of::algorithm::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 diff --git a/sprout/algorithm/fixed/bogo_sort.hpp b/sprout/algorithm/fixed/bogo_sort.hpp index a04f96ac..6be6f1dc 100644 --- a/sprout/algorithm/fixed/bogo_sort.hpp +++ b/sprout/algorithm/fixed/bogo_sort.hpp @@ -16,11 +16,8 @@ namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type bogo_sort_impl_1( - Shuffled const& shuffled, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + bogo_sort_impl_1(Shuffled const& shuffled, Compare comp) { return NS_SSCRISK_CEL_OR_SPROUT::is_sorted( sprout::begin(sprout::tuples::get<0>(shuffled)), sprout::end(sprout::tuples::get<0>(shuffled)), @@ -37,12 +34,8 @@ namespace sprout { ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type bogo_sort_impl( - Container const& cont, - UniformRandomNumberGenerator&& g, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + bogo_sort_impl(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) { return NS_SSCRISK_CEL_OR_SPROUT::is_sorted( sprout::begin(cont), sprout::end(cont), @@ -63,27 +56,17 @@ namespace sprout { // bogo_sort // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type bogo_sort( - Container const& cont, - UniformRandomNumberGenerator&& g, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + bogo_sort(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) { return sprout::fixed::detail::bogo_sort_impl( cont, sprout::forward(g), comp ); } - // - // bogo_sort - // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type bogo_sort( - Container const& cont, - UniformRandomNumberGenerator&& g - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + bogo_sort(Container const& cont, UniformRandomNumberGenerator&& g) { return sprout::fixed::detail::bogo_sort_impl( cont, sprout::forward(g), diff --git a/sprout/algorithm/fixed/bogo_sort_result.hpp b/sprout/algorithm/fixed/bogo_sort_result.hpp index fea734a8..60d59282 100644 --- a/sprout/algorithm/fixed/bogo_sort_result.hpp +++ b/sprout/algorithm/fixed/bogo_sort_result.hpp @@ -20,11 +20,8 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fixed::result_of::algorithm::type, typename std::decay::type - > bogo_sort_result_impl_1( - Shuffled const& shuffled, - Compare comp - ) - { + > + bogo_sort_result_impl_1(Shuffled const& shuffled, Compare comp) { return NS_SSCRISK_CEL_OR_SPROUT::is_sorted( sprout::begin(sprout::tuples::get<0>(shuffled)), sprout::end(sprout::tuples::get<0>(shuffled)), @@ -44,12 +41,8 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fixed::result_of::algorithm::type, typename std::decay::type - > bogo_sort_result_impl( - Container const& cont, - UniformRandomNumberGenerator&& g, - Compare comp - ) - { + > + bogo_sort_result_impl(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) { typedef sprout::tuples::tuple< typename sprout::fixed::result_of::algorithm::type, typename std::decay::type @@ -80,30 +73,20 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fixed::result_of::algorithm::type, typename std::decay::type - > bogo_sort_result( - Container const& cont, - UniformRandomNumberGenerator&& g, - Compare comp - ) - { + > + bogo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) { return sprout::fixed::detail::bogo_sort_result_impl( cont, sprout::forward(g), comp ); } - // - // bogo_sort_result - // template inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fixed::result_of::algorithm::type, typename std::decay::type - > bogo_sort_result( - Container const& cont, - UniformRandomNumberGenerator&& g - ) - { + > + bogo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g) { return sprout::fixed::detail::bogo_sort_result_impl( cont, sprout::forward(g), diff --git a/sprout/algorithm/fixed/bozo_sort.hpp b/sprout/algorithm/fixed/bozo_sort.hpp index 6924b658..c56e4c1e 100644 --- a/sprout/algorithm/fixed/bozo_sort.hpp +++ b/sprout/algorithm/fixed/bozo_sort.hpp @@ -16,11 +16,8 @@ namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type bozo_sort_impl_1( - Shuffled const& shuffled, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + bozo_sort_impl_1(Shuffled const& shuffled, Compare comp) { return NS_SSCRISK_CEL_OR_SPROUT::is_sorted( sprout::begin(sprout::tuples::get<0>(shuffled)), sprout::end(sprout::tuples::get<0>(shuffled)), @@ -37,12 +34,8 @@ namespace sprout { ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type bozo_sort_impl( - Container const& cont, - UniformRandomNumberGenerator&& g, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + bozo_sort_impl(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) { return NS_SSCRISK_CEL_OR_SPROUT::is_sorted( sprout::begin(cont), sprout::end(cont), @@ -63,27 +56,17 @@ namespace sprout { // bozo_sort // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type bozo_sort( - Container const& cont, - UniformRandomNumberGenerator&& g, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + bozo_sort(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) { return sprout::fixed::detail::bozo_sort_impl( cont, sprout::forward(g), comp ); } - // - // bozo_sort - // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type bozo_sort( - Container const& cont, - UniformRandomNumberGenerator&& g - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + bozo_sort(Container const& cont, UniformRandomNumberGenerator&& g) { return sprout::fixed::detail::bozo_sort_impl( cont, sprout::forward(g), diff --git a/sprout/algorithm/fixed/bozo_sort_result.hpp b/sprout/algorithm/fixed/bozo_sort_result.hpp index c9411c68..f4a53e34 100644 --- a/sprout/algorithm/fixed/bozo_sort_result.hpp +++ b/sprout/algorithm/fixed/bozo_sort_result.hpp @@ -20,11 +20,8 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fixed::result_of::algorithm::type, typename std::decay::type - > bozo_sort_result_impl_1( - Shuffled const& shuffled, - Compare comp - ) - { + > + bozo_sort_result_impl_1(Shuffled const& shuffled, Compare comp) { return NS_SSCRISK_CEL_OR_SPROUT::is_sorted( sprout::begin(sprout::tuples::get<0>(shuffled)), sprout::end(sprout::tuples::get<0>(shuffled)), @@ -44,12 +41,8 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fixed::result_of::algorithm::type, typename std::decay::type - > bozo_sort_result_impl( - Container const& cont, - UniformRandomNumberGenerator&& g, - Compare comp - ) - { + > + bozo_sort_result_impl(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) { typedef sprout::tuples::tuple< typename sprout::fixed::result_of::algorithm::type, typename std::decay::type @@ -80,30 +73,20 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fixed::result_of::algorithm::type, typename std::decay::type - > bozo_sort_result( - Container const& cont, - UniformRandomNumberGenerator&& g, - Compare comp - ) - { + > + bozo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) { return sprout::fixed::detail::bozo_sort_result_impl( cont, sprout::forward(g), comp ); } - // - // bozo_sort_result - // template inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fixed::result_of::algorithm::type, typename std::decay::type - > bozo_sort_result( - Container const& cont, - UniformRandomNumberGenerator&& g - ) - { + > + bozo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g) { return sprout::fixed::detail::bozo_sort_result_impl( cont, sprout::forward(g), diff --git a/sprout/algorithm/fixed/copy.hpp b/sprout/algorithm/fixed/copy.hpp index f0620593..5914185b 100644 --- a/sprout/algorithm/fixed/copy.hpp +++ b/sprout/algorithm/fixed/copy.hpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include HDR_ITERATOR_SSCRISK_CEL_OR_SPROUT @@ -16,10 +17,9 @@ namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type copy_impl_ra( - RandomAccessIterator first, - RandomAccessIterator last, - Result const& result, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + copy_impl_ra( + RandomAccessIterator first, RandomAccessIterator last, Result const& result, sprout::index_tuple, typename sprout::container_traits::difference_type offset, typename sprout::container_traits::size_type size, @@ -29,24 +29,21 @@ namespace sprout { return sprout::remake( result, sprout::size(result), - (Indexes >= offset && Indexes < offset + size && Indexes < offset + input_size + (Indexes >= offset && sprout::math::less(Indexes, offset + size) && sprout::math::less(Indexes, offset + input_size) ? first[Indexes - offset] : *sprout::next(sprout::internal_begin(result), Indexes) )... ); } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type copy( - RandomAccessIterator first, - RandomAccessIterator last, - Result const& result, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + copy( + RandomAccessIterator first, RandomAccessIterator last, Result const& result, std::random_access_iterator_tag* ) { return sprout::fixed::detail::copy_impl_ra( - first, - last, - result, + first, last, result, sprout::index_range<0, sprout::container_traits::static_size>::make(), sprout::internal_begin_offset(result), sprout::size(result), @@ -57,10 +54,9 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type copy_impl( - InputIterator first, - InputIterator last, - Result const& result, + >::type + copy_impl( + InputIterator first, InputIterator last, Result const& result, typename sprout::container_traits::size_type size, Args const&... args ) @@ -71,10 +67,9 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type copy_impl( - InputIterator first, - InputIterator last, - Result const& result, + >::type + copy_impl( + InputIterator first, InputIterator last, Result const& result, typename sprout::container_traits::size_type size, Args const&... args ) @@ -85,10 +80,9 @@ namespace sprout { ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type copy( - InputIterator first, - InputIterator last, - Result const& result, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + copy( + InputIterator first, InputIterator last, Result const& result, void* ) { @@ -99,12 +93,8 @@ namespace sprout { // copy // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type copy( - InputIterator first, - InputIterator last, - Result const& result - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + copy(InputIterator first, InputIterator last, Result const& result) { typedef typename std::iterator_traits::iterator_category* category; return sprout::fixed::detail::copy(first, last, result, category()); } diff --git a/sprout/algorithm/fixed/copy_backward.hpp b/sprout/algorithm/fixed/copy_backward.hpp index 3de530c1..86ac73ac 100644 --- a/sprout/algorithm/fixed/copy_backward.hpp +++ b/sprout/algorithm/fixed/copy_backward.hpp @@ -1,7 +1,6 @@ #ifndef SPROUT_ALGORITHM_FIXED_COPY_BACKWARD_HPP #define SPROUT_ALGORITHM_FIXED_COPY_BACKWARD_HPP -#include #include #include #include @@ -10,6 +9,7 @@ #include #include #include +#include #include #include HDR_ITERATOR_SSCRISK_CEL_OR_SPROUT @@ -17,10 +17,9 @@ namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type copy_backward_impl_ra( - RandomAccessIterator first, - RandomAccessIterator last, - Result const& result, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + copy_backward_impl_ra( + RandomAccessIterator first, RandomAccessIterator last, Result const& result, sprout::index_tuple, typename sprout::container_traits::difference_type offset, typename sprout::container_traits::size_type size, @@ -30,24 +29,21 @@ namespace sprout { return sprout::remake( result, sprout::size(result), - (Indexes < offset && Indexes + size >= static_cast(offset) && Indexes + input_size >= static_cast(offset) + (Indexes < offset && sprout::math::greater_equal(Indexes + size, offset) && sprout::math::greater_equal(Indexes + input_size, offset) ? last[Indexes - offset] : *sprout::next(sprout::internal_begin(result), Indexes) )... ); } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type copy_backward( - RandomAccessIterator first, - RandomAccessIterator last, - Result const& result, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + copy_backward( + RandomAccessIterator first, RandomAccessIterator last, Result const& result, std::random_access_iterator_tag* ) { return sprout::fixed::detail::copy_backward_impl_ra( - first, - last, - result, + first, last, result, sprout::index_range<0, sprout::container_traits::static_size>::make(), sprout::internal_end_offset(result), sprout::size(result), @@ -58,10 +54,9 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type copy_backward_impl( - BidirectionalIterator first, - BidirectionalIterator last, - Result const& result, + >::type + copy_backward_impl( + BidirectionalIterator first, BidirectionalIterator last, Result const& result, typename sprout::container_traits::size_type size, Args const&... args ) @@ -72,10 +67,9 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type copy_backward_impl( - BidirectionalIterator first, - BidirectionalIterator last, - Result const& result, + >::type + copy_backward_impl( + BidirectionalIterator first, BidirectionalIterator last, Result const& result, typename sprout::container_traits::size_type size, Args const&... args ) @@ -86,10 +80,9 @@ namespace sprout { ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type copy_backward( - BidirectionalIterator first, - BidirectionalIterator last, - Result const& result, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + copy_backward( + BidirectionalIterator first, BidirectionalIterator last, Result const& result, void* ) { @@ -105,12 +98,8 @@ namespace sprout { // copy_backward // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type copy_backward( - BidirectionalIterator first, - BidirectionalIterator last, - Result const& result - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + copy_backward(BidirectionalIterator first, BidirectionalIterator last, Result const& result) { typedef typename std::iterator_traits::iterator_category* category; return sprout::fixed::detail::copy_backward( first, diff --git a/sprout/algorithm/fixed/copy_if.hpp b/sprout/algorithm/fixed/copy_if.hpp index 1c6a655f..6f5e47fa 100644 --- a/sprout/algorithm/fixed/copy_if.hpp +++ b/sprout/algorithm/fixed/copy_if.hpp @@ -16,11 +16,8 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type copy_if_impl( - InputIterator first, - InputIterator last, - Result const& result, - Predicate pred, + >::type + copy_if_impl(InputIterator first, InputIterator last, Result const& result, Predicate pred, typename sprout::container_traits::size_type size, Args const&... args ) @@ -31,11 +28,9 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type copy_if_impl( - InputIterator first, - InputIterator last, - Result const& result, - Predicate pred, + >::type + copy_if_impl( + InputIterator first, InputIterator last, Result const& result, Predicate pred, typename sprout::container_traits::size_type size, Args const&... args ) @@ -52,13 +47,8 @@ namespace sprout { // copy_if // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type copy_if( - InputIterator first, - InputIterator last, - Result const& result, - Predicate pred - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + copy_if(InputIterator first, InputIterator last, Result const& result, Predicate pred) { return sprout::fixed::detail::copy_if_impl(first, last, result, pred, sprout::size(result)); } } // namespace fixed diff --git a/sprout/algorithm/fixed/copy_n.hpp b/sprout/algorithm/fixed/copy_n.hpp index 92a756ff..06800019 100644 --- a/sprout/algorithm/fixed/copy_n.hpp +++ b/sprout/algorithm/fixed/copy_n.hpp @@ -9,16 +9,16 @@ #include #include #include +#include #include namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type copy_n( - RandomAccessIterator first, - Size n, - Result const& result, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + copy_n( + RandomAccessIterator first, Size n, Result const& result, std::random_access_iterator_tag* ) { @@ -28,10 +28,8 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type copy_n_impl( - InputIterator first, - Size n, - Result const& result, + >::type + copy_n_impl(InputIterator first, Size n, Result const& result, typename sprout::container_traits::difference_type offset, Args const&... args ) @@ -42,24 +40,22 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type copy_n_impl( - InputIterator first, - Size n, - Result const& result, + >::type + copy_n_impl( + InputIterator first, Size n, Result const& result, typename sprout::container_traits::difference_type offset, Args const&... args ) { - return n != 0 && sizeof...(Args) < static_cast(offset) + return n != 0 && sprout::math::less(sizeof...(Args), offset) ? sprout::fixed::detail::copy_n_impl(sprout::next(first), n - 1, result, offset, args..., *first) : sprout::detail::container_complate(result, args...) ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type copy_n( - InputIterator first, - Size n, - Result const& result, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + copy_n( + InputIterator first, Size n, Result const& result, void* ) { @@ -70,12 +66,8 @@ namespace sprout { // copy_n // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type copy_n( - InputIterator first, - Size n, - Result const& result - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + copy_n(InputIterator first, Size n, Result const& result) { typedef typename std::iterator_traits::iterator_category* category; return sprout::fixed::detail::copy_n(first, n, result, category()); } diff --git a/sprout/algorithm/fixed/fill.hpp b/sprout/algorithm/fixed/fill.hpp index 1dfd59d2..c33491b4 100644 --- a/sprout/algorithm/fixed/fill.hpp +++ b/sprout/algorithm/fixed/fill.hpp @@ -12,9 +12,9 @@ namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type fill_impl( - Container const& cont, - T const& value, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + fill_impl( + Container const& cont, T const& value, sprout::index_tuple, typename sprout::container_traits::difference_type offset, typename sprout::container_traits::size_type size @@ -34,14 +34,10 @@ namespace sprout { // fill // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type fill( - Container const& cont, - T const& value - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + fill(Container const& cont, T const& value) { return sprout::fixed::detail::fill_impl( - cont, - value, + cont, value, sprout::index_range<0, sprout::container_traits::static_size>::make(), sprout::internal_begin_offset(cont), sprout::size(cont) diff --git a/sprout/algorithm/fixed/fill_n.hpp b/sprout/algorithm/fixed/fill_n.hpp index f8dbe015..4d92202e 100644 --- a/sprout/algorithm/fixed/fill_n.hpp +++ b/sprout/algorithm/fixed/fill_n.hpp @@ -14,15 +14,10 @@ namespace sprout { // fill_n // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type fill_n( - Container const& cont, - Size n, - T const& value - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + fill_n(Container const& cont, Size n, T const& value) { return sprout::fixed::detail::fill_impl( - cont, - value, + cont, value, sprout::index_range<0, sprout::container_traits::static_size>::make(), sprout::internal_begin_offset(cont), n diff --git a/sprout/algorithm/fixed/generate.hpp b/sprout/algorithm/fixed/generate.hpp index a7dc1d0d..b0f9b0bd 100644 --- a/sprout/algorithm/fixed/generate.hpp +++ b/sprout/algorithm/fixed/generate.hpp @@ -16,7 +16,8 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args) + 1, typename sprout::fixed::result_of::algorithm::type - >::type generate_impl_1( + >::type + generate_impl_1( Container const& cont, Next const& next, typename sprout::container_traits::size_type size, Args const&... args @@ -47,7 +48,8 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == 0, typename sprout::fixed::result_of::algorithm::type - >::type generate_impl( + >::type + generate_impl( Container const& cont, Generator const& next, typename sprout::container_traits::size_type size ) diff --git a/sprout/algorithm/fixed/inplace_merge.hpp b/sprout/algorithm/fixed/inplace_merge.hpp index 05d0012d..501bbd87 100644 --- a/sprout/algorithm/fixed/inplace_merge.hpp +++ b/sprout/algorithm/fixed/inplace_merge.hpp @@ -13,35 +13,23 @@ namespace sprout { // inplace_merge // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type inplace_merge( - Container const& cont, - typename sprout::container_traits::const_iterator middle, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + inplace_merge(Container const& cont, typename sprout::container_traits::const_iterator middle, Compare comp) { return sprout::fixed::merge( - sprout::begin(cont), - middle, - middle, - sprout::end(cont), - cont, - comp + sprout::begin(cont), middle, + middle, sprout::end(cont), + cont, comp ); } // // inplace_merge // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type inplace_merge( - Container const& cont, - typename sprout::container_traits::const_iterator middle - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + inplace_merge(Container const& cont, typename sprout::container_traits::const_iterator middle) { return sprout::fixed::merge( - sprout::begin(cont), - middle, - middle, - sprout::end(cont), + sprout::begin(cont), middle, + middle, sprout::end(cont), cont ); } diff --git a/sprout/algorithm/fixed/make_heap.hpp b/sprout/algorithm/fixed/make_heap.hpp index ec9afe56..73537e28 100644 --- a/sprout/algorithm/fixed/make_heap.hpp +++ b/sprout/algorithm/fixed/make_heap.hpp @@ -13,9 +13,9 @@ namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type make_heap_impl( - Container const& cont, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + make_heap_impl( + Container const& cont, Compare comp, typename sprout::container_traits::difference_type offset, typename sprout::container_traits::difference_type size, typename sprout::container_traits::difference_type n = 0, @@ -23,9 +23,9 @@ namespace sprout { typename sprout::container_traits::difference_type r = 2 ); template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type make_heap_impl_1( - Container const& cont, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + make_heap_impl_1( + Container const& cont, Compare comp, typename sprout::container_traits::difference_type offset, typename sprout::container_traits::difference_type size, typename sprout::container_traits::difference_type n, @@ -42,11 +42,7 @@ namespace sprout { sprout::next(sprout::internal_begin(cont), offset + r) ), comp, - offset, - size, - r, - r * 2 + 1, - r * 2 + 2 + offset, size, r, r * 2 + 1, r * 2 + 2 ) : sprout::deep_copy(cont) : comp(*sprout::next(sprout::internal_begin(cont), offset + n), *sprout::next(sprout::internal_begin(cont), offset + l)) @@ -57,19 +53,15 @@ namespace sprout { sprout::next(sprout::internal_begin(cont), offset + l) ), comp, - offset, - size, - l, - l * 2 + 1, - l * 2 + 2 + offset, size, l, l * 2 + 1, l * 2 + 2 ) : sprout::deep_copy(cont) ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type make_heap_impl( - Container const& cont, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + make_heap_impl( + Container const& cont, Compare comp, typename sprout::container_traits::difference_type offset, typename sprout::container_traits::difference_type size, typename sprout::container_traits::difference_type n, @@ -91,18 +83,11 @@ namespace sprout { sprout::fixed::detail::make_heap_impl( sprout::fixed::detail::make_heap_impl(cont, comp, offset, size, l, l * 2 + 1, l * 2 + 2), comp, - offset, - size, - r, - r * 2 + 1, - r * 2 + 2 + offset, size, + r, r * 2 + 1, r * 2 + 2 ), comp, - offset, - size, - n, - l, - r + offset, size, n, l, r ) ; } @@ -111,29 +96,19 @@ namespace sprout { // make_heap // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type make_heap( - Container const& cont, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + make_heap(Container const& cont, Compare comp) { return sprout::fixed::detail::make_heap_impl( - cont, - comp, + cont, comp, sprout::internal_begin_offset(cont), sprout::size(cont) ); } - // - // make_heap - // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type make_heap( - Container const& cont - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + make_heap(Container const& cont) { return sprout::fixed::detail::make_heap_impl( - cont, - NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), + cont, NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), sprout::internal_begin_offset(cont), sprout::size(cont) ); diff --git a/sprout/algorithm/fixed/make_partial_heap.hpp b/sprout/algorithm/fixed/make_partial_heap.hpp index be95b826..dcd97b5e 100644 --- a/sprout/algorithm/fixed/make_partial_heap.hpp +++ b/sprout/algorithm/fixed/make_partial_heap.hpp @@ -16,9 +16,9 @@ namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type make_partial_heap_impl_1( - Container const& cont, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + make_partial_heap_impl_1( + Container const& cont, Compare comp, typename sprout::container_traits::difference_type offset, typename sprout::container_traits::difference_type size, typename sprout::container_traits::difference_type middle_size, @@ -35,35 +35,27 @@ namespace sprout { sprout::next(sprout::internal_begin(cont), offset) ), comp, - offset, - middle_size + offset, middle_size ), comp, - offset, - size, - middle_size, - n + 1 + offset, size, middle_size, n + 1 ) : sprout::fixed::detail::make_partial_heap_impl_1(cont, comp, offset, size, middle_size, n + 1) : sprout::deep_copy(cont) ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type make_partial_heap_impl( - Container const& cont, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + make_partial_heap_impl( + Container const& cont, Compare comp, typename sprout::container_traits::difference_type offset, typename sprout::container_traits::difference_type size, typename sprout::container_traits::difference_type middle_size ) { return sprout::fixed::detail::make_partial_heap_impl_1( - sprout::fixed::detail::make_heap_impl(cont, comp, offset, middle_size), - comp, - offset, - size, - middle_size, - middle_size + sprout::fixed::detail::make_heap_impl(cont, comp, offset, middle_size), comp, + offset, size, middle_size, middle_size ); } } // namespace detail @@ -71,15 +63,10 @@ namespace sprout { // make_partial_heap // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type make_partial_heap( - Container const& cont, - typename sprout::container_traits::const_iterator middle, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + make_partial_heap(Container const& cont, typename sprout::container_traits::const_iterator middle, Compare comp) { return sprout::fixed::detail::make_partial_heap_impl( - cont, - comp, + cont, comp, sprout::internal_begin_offset(cont), sprout::size(cont), NS_SSCRISK_CEL_OR_SPROUT::distance(sprout::begin(cont), middle) @@ -89,14 +76,10 @@ namespace sprout { // make_partial_heap // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type make_partial_heap( - Container const& cont, - typename sprout::container_traits::const_iterator middle - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + make_partial_heap(Container const& cont, typename sprout::container_traits::const_iterator middle) { return sprout::fixed::detail::make_partial_heap_impl( - cont, - NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), + cont, NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), sprout::internal_begin_offset(cont), sprout::size(cont), NS_SSCRISK_CEL_OR_SPROUT::distance(sprout::begin(cont), middle) diff --git a/sprout/algorithm/fixed/merge.hpp b/sprout/algorithm/fixed/merge.hpp index 0f629593..167bb74e 100644 --- a/sprout/algorithm/fixed/merge.hpp +++ b/sprout/algorithm/fixed/merge.hpp @@ -17,13 +17,11 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type merge_impl( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, - Result const& result, - Compare comp, + >::type + merge_impl( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + Result const& result, Compare comp, typename sprout::container_traits::size_type size, Args const&... args ) @@ -34,13 +32,11 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type merge_impl( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, - Result const& result, - Compare comp, + >::type + merge_impl( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + Result const& result, Compare comp, typename sprout::container_traits::size_type size, Args const&... args ) @@ -49,11 +45,23 @@ namespace sprout { ? first1 != last1 ? first2 != last2 ? comp(*first2, *first1) - ? sprout::fixed::detail::merge_impl(first1, last1, sprout::next(first2), last2, result, comp, size, args..., *first2) - : sprout::fixed::detail::merge_impl(sprout::next(first1), last1, first2, last2, result, comp, size, args..., *first1) - : sprout::fixed::detail::merge_impl(sprout::next(first1), last1, first2, last2, result, comp, size, args..., *first1) + ? sprout::fixed::detail::merge_impl( + first1, last1, sprout::next(first2), last2, result, comp, + size, args..., *first2 + ) + : sprout::fixed::detail::merge_impl( + sprout::next(first1), last1, first2, last2, result, comp, + size, args..., *first1 + ) + : sprout::fixed::detail::merge_impl( + sprout::next(first1), last1, first2, last2, result, comp, + size, args..., *first1 + ) : first2 != last2 - ? sprout::fixed::detail::merge_impl(first1, last1, sprout::next(first2), last2, result, comp, size, args..., *first2) + ? sprout::fixed::detail::merge_impl( + first1, last1, sprout::next(first2), last2, result, comp, + size, args..., *first2 + ) : sprout::detail::container_complate(result, args...) : sprout::detail::container_complate(result, args...) ; @@ -63,44 +71,32 @@ namespace sprout { // merge // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type merge( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, - Result const& result, - Compare comp + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + merge( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + Result const& result, Compare comp ) { return sprout::fixed::detail::merge_impl( - first1, - last1, - first2, - last2, - result, - comp, + first1, last1, + first2, last2, + result, comp, sprout::size(result) ); } - // - // merge - // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type merge( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + merge( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, Result const& result ) { return sprout::fixed::detail::merge_impl( - first1, - last1, - first2, - last2, - result, - NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), + first1, last1, + first2, last2, + result, NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), sprout::size(result) ); } diff --git a/sprout/algorithm/fixed/next_permutation.hpp b/sprout/algorithm/fixed/next_permutation.hpp index 212ed078..be9118af 100644 --- a/sprout/algorithm/fixed/next_permutation.hpp +++ b/sprout/algorithm/fixed/next_permutation.hpp @@ -83,9 +83,6 @@ namespace sprout { sprout::begin(cont), sprout::end(cont) ); } - // - // next_permutation - // template inline SPROUT_CONSTEXPR sprout::pair::type, bool> next_permutation(Container const& cont) { diff --git a/sprout/algorithm/fixed/nth_element.hpp b/sprout/algorithm/fixed/nth_element.hpp index 9aaa0884..1d2d6f9b 100644 --- a/sprout/algorithm/fixed/nth_element.hpp +++ b/sprout/algorithm/fixed/nth_element.hpp @@ -15,7 +15,8 @@ namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type nth_element_impl_1( + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + nth_element_impl_1( Container const& cont, typename sprout::container_traits::difference_type offset, typename sprout::container_traits::difference_type nth_size @@ -28,9 +29,9 @@ namespace sprout { ); } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type nth_element_impl( - Container const& cont, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + nth_element_impl( + Container const& cont, Compare comp, typename sprout::container_traits::difference_type offset, typename sprout::container_traits::difference_type size, typename sprout::container_traits::difference_type nth_size @@ -47,32 +48,20 @@ namespace sprout { // nth_element // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type nth_element( - Container const& cont, - typename sprout::container_traits::const_iterator nth, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + nth_element(Container const& cont, typename sprout::container_traits::const_iterator nth, Compare comp) { return sprout::fixed::detail::nth_element_impl( - cont, - comp, + cont, comp, sprout::internal_begin_offset(cont), sprout::size(cont), NS_SSCRISK_CEL_OR_SPROUT::distance(sprout::begin(cont), nth) ); } - // - // nth_element - // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type nth_element( - Container const& cont, - typename sprout::container_traits::const_iterator nth - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + nth_element(Container const& cont, typename sprout::container_traits::const_iterator nth) { return sprout::fixed::detail::nth_element_impl( - cont, - NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), + cont, NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), sprout::internal_begin_offset(cont), sprout::size(cont), NS_SSCRISK_CEL_OR_SPROUT::distance(sprout::begin(cont), nth) diff --git a/sprout/algorithm/fixed/partial_sort.hpp b/sprout/algorithm/fixed/partial_sort.hpp index 1f559100..62b5a5ff 100644 --- a/sprout/algorithm/fixed/partial_sort.hpp +++ b/sprout/algorithm/fixed/partial_sort.hpp @@ -14,19 +14,17 @@ namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type partial_sort_impl( - Container const& cont, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + partial_sort_impl( + Container const& cont, Compare comp, typename sprout::container_traits::difference_type offset, typename sprout::container_traits::difference_type size, typename sprout::container_traits::difference_type middle_size ) { return sprout::fixed::detail::sort_heap_impl( - sprout::fixed::detail::make_partial_heap_impl(cont, comp, offset, size, middle_size), - comp, - offset, - middle_size + sprout::fixed::detail::make_partial_heap_impl(cont, comp, offset, size, middle_size), comp, + offset, middle_size ); } } // namespace detail @@ -34,32 +32,20 @@ namespace sprout { // partial_sort // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type partial_sort( - Container const& cont, - typename sprout::container_traits::const_iterator middle, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + partial_sort(Container const& cont, typename sprout::container_traits::const_iterator middle, Compare comp) { return sprout::fixed::detail::partial_sort_impl( - cont, - comp, + cont, comp, sprout::internal_begin_offset(cont), sprout::size(cont), NS_SSCRISK_CEL_OR_SPROUT::distance(sprout::begin(cont), middle) ); } - // - // partial_sort - // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type partial_sort( - Container const& cont, - typename sprout::container_traits::const_iterator middle - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + partial_sort(Container const& cont, typename sprout::container_traits::const_iterator middle) { return sprout::fixed::detail::partial_sort_impl( - cont, - NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), + cont, NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), sprout::internal_begin_offset(cont), sprout::size(cont), NS_SSCRISK_CEL_OR_SPROUT::distance(sprout::begin(cont), middle) diff --git a/sprout/algorithm/fixed/partition.hpp b/sprout/algorithm/fixed/partition.hpp index 28d63344..ff1dccbe 100644 --- a/sprout/algorithm/fixed/partition.hpp +++ b/sprout/algorithm/fixed/partition.hpp @@ -13,11 +13,8 @@ namespace sprout { // partition // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type partition( - Container const& cont, - Predicate pred - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + partition(Container const& cont, Predicate pred) { return sprout::fixed::partition_copy(sprout::begin(cont), sprout::end(cont), cont, pred); } } // namespace fixed diff --git a/sprout/algorithm/fixed/partition_copy.hpp b/sprout/algorithm/fixed/partition_copy.hpp index 5c8ed6a6..4ad4c5c2 100644 --- a/sprout/algorithm/fixed/partition_copy.hpp +++ b/sprout/algorithm/fixed/partition_copy.hpp @@ -16,11 +16,9 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type partition_copy_impl( - InputIterator first, - InputIterator last, - Result const& result, - Predicate pred, + >::type + partition_copy_impl( + InputIterator first, InputIterator last, Result const& result, Predicate pred, typename sprout::container_traits::size_type size, Args const&... args ) @@ -31,11 +29,9 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type partition_copy_impl( - InputIterator first, - InputIterator last, - Result const& result, - Predicate pred, + >::type + partition_copy_impl( + InputIterator first, InputIterator last, Result const& result, Predicate pred, typename sprout::container_traits::size_type size, Args const&... args ) @@ -52,18 +48,10 @@ namespace sprout { // partition_copy // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type partition_copy( - InputIterator first, - InputIterator last, - Result const& result, - Predicate pred - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + partition_copy(InputIterator first, InputIterator last, Result const& result, Predicate pred) { return sprout::fixed::detail::partition_copy_impl( - first, - last, - result, - pred, + first, last, result, pred, sprout::size(result) ); } diff --git a/sprout/algorithm/fixed/pop_heap.hpp b/sprout/algorithm/fixed/pop_heap.hpp index a7d9504d..bf2e0f68 100644 --- a/sprout/algorithm/fixed/pop_heap.hpp +++ b/sprout/algorithm/fixed/pop_heap.hpp @@ -13,7 +13,8 @@ namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type pop_heap_impl( + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + pop_heap_impl( Container const& cont, Compare comp, typename sprout::container_traits::difference_type offset, @@ -23,7 +24,8 @@ namespace sprout { typename sprout::container_traits::difference_type r = 2 ) { - return r < size && comp(*sprout::next(sprout::internal_begin(cont), offset + l), *sprout::next(sprout::internal_begin(cont), offset + r)) + return r < size + && comp(*sprout::next(sprout::internal_begin(cont), offset + l), *sprout::next(sprout::internal_begin(cont), offset + r)) ? comp(*sprout::next(sprout::internal_begin(cont), offset + n), *sprout::next(sprout::internal_begin(cont), offset + r)) ? sprout::fixed::detail::pop_heap_impl( sprout::fixed::swap_element( @@ -63,11 +65,8 @@ namespace sprout { // pop_heap // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type pop_heap( - Container const& cont, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + pop_heap(Container const& cont, Compare comp) { return sprout::fixed::detail::pop_heap_impl( sprout::fixed::swap_element(cont, sprout::begin(cont), sprout::end(cont) - 1), comp, @@ -75,14 +74,9 @@ namespace sprout { sprout::size(cont) - 1 ); } - // - // pop_heap - // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type pop_heap( - Container const& cont - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + pop_heap(Container const& cont) { return sprout::fixed::detail::pop_heap_impl( sprout::fixed::swap_element(cont, sprout::begin(cont), sprout::end(cont) - 1), NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), diff --git a/sprout/algorithm/fixed/push_heap.hpp b/sprout/algorithm/fixed/push_heap.hpp index 67fb6896..961d54ac 100644 --- a/sprout/algorithm/fixed/push_heap.hpp +++ b/sprout/algorithm/fixed/push_heap.hpp @@ -13,14 +13,18 @@ namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type push_heap_impl( - Container const& cont, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + push_heap_impl( + Container const& cont, Compare comp, typename sprout::container_traits::difference_type offset, typename sprout::container_traits::difference_type n ) { - return n != 0 && comp(*sprout::next(sprout::internal_begin(cont), offset + (n - 1) / 2), *sprout::next(sprout::internal_begin(cont), offset + n)) + return n != 0 + && comp( + *sprout::next(sprout::internal_begin(cont), offset + (n - 1) / 2), + *sprout::next(sprout::internal_begin(cont), offset + n) + ) ? sprout::fixed::detail::push_heap_impl( sprout::fixed::swap_element( cont, @@ -39,29 +43,19 @@ namespace sprout { // push_heap // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type push_heap( - Container const& cont, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + push_heap(Container const& cont, Compare comp) { return sprout::fixed::detail::push_heap_impl( - cont, - comp, + cont, comp, sprout::internal_begin_offset(cont), sprout::size(cont) - 1 ); } - // - // push_heap - // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type push_heap( - Container const& cont - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + push_heap(Container const& cont) { return sprout::fixed::detail::push_heap_impl( - cont, - NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), + cont, NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), sprout::internal_begin_offset(cont), sprout::size(cont) - 1 ); diff --git a/sprout/algorithm/fixed/random_swap.hpp b/sprout/algorithm/fixed/random_swap.hpp index e7f09f91..e38a7ad4 100644 --- a/sprout/algorithm/fixed/random_swap.hpp +++ b/sprout/algorithm/fixed/random_swap.hpp @@ -16,29 +16,21 @@ namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR sprout::array make_random_swap_indexes_2( - Random const& rnd, - std::ptrdiff_t i0 - ) - { + inline SPROUT_CONSTEXPR sprout::array + make_random_swap_indexes_2(Random const& rnd, std::ptrdiff_t i0) { return sprout::array{{i0, rnd.result()}}; } template - inline SPROUT_CONSTEXPR sprout::array make_random_swap_indexes_1( - Random const& rnd - ) - { + inline SPROUT_CONSTEXPR sprout::array + make_random_swap_indexes_1(Random const& rnd) { return sprout::fixed::detail::make_random_swap_indexes_2( rnd(), rnd.result() ); } template - inline SPROUT_CONSTEXPR sprout::array make_random_swap_indexes( - std::ptrdiff_t n, - UniformRandomNumberGenerator&& g - ) - { + inline SPROUT_CONSTEXPR sprout::array + make_random_swap_indexes(std::ptrdiff_t n, UniformRandomNumberGenerator&& g) { return n > 1 ? sprout::fixed::detail::make_random_swap_indexes_1( sprout::random::uniform_int_distribution(0, n - 1)(sprout::forward(g)) @@ -47,11 +39,8 @@ namespace sprout { ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type random_swap_impl_1( - Container const& cont, - RandomSwapped const& random_swapped - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + random_swap_impl_1(Container const& cont, RandomSwapped const& random_swapped) { return random_swapped[0] == random_swapped[1] ? sprout::deep_copy(cont) : sprout::fixed::swap_element( @@ -62,9 +51,9 @@ namespace sprout { ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type random_swap_impl( - Container const& cont, - UniformRandomNumberGenerator&& g, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + random_swap_impl( + Container const& cont, UniformRandomNumberGenerator&& g, typename sprout::container_traits::size_type size ) { @@ -81,14 +70,10 @@ namespace sprout { // random_swap // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type random_swap( - Container const& cont, - UniformRandomNumberGenerator&& g - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + random_swap(Container const& cont, UniformRandomNumberGenerator&& g) { return sprout::fixed::detail::random_swap_impl( - cont, - sprout::forward(g), + cont, sprout::forward(g), sprout::size(cont) ); } diff --git a/sprout/algorithm/fixed/random_swap_result.hpp b/sprout/algorithm/fixed/random_swap_result.hpp index eb926803..eb3e211e 100644 --- a/sprout/algorithm/fixed/random_swap_result.hpp +++ b/sprout/algorithm/fixed/random_swap_result.hpp @@ -21,11 +21,8 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< sprout::array, typename std::decay::type - > make_random_swap_result_indexes_2( - Random const& rnd, - std::ptrdiff_t i0 - ) - { + > + make_random_swap_result_indexes_2(Random const& rnd, std::ptrdiff_t i0) { typedef sprout::tuples::tuple< sprout::array, typename std::decay::type @@ -39,10 +36,8 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< sprout::array, typename std::decay::type - > make_random_swap_result_indexes_1( - Random const& rnd - ) - { + > + make_random_swap_result_indexes_1(Random const& rnd) { return sprout::fixed::detail::make_random_swap_result_indexes_2( rnd(), rnd.result() @@ -52,11 +47,8 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< sprout::array, typename std::decay::type - > make_random_swap_result_indexes( - std::ptrdiff_t n, - UniformRandomNumberGenerator&& g - ) - { + > + make_random_swap_result_indexes(std::ptrdiff_t n, UniformRandomNumberGenerator&& g) { typedef sprout::tuples::tuple< sprout::array, typename std::decay::type @@ -75,11 +67,8 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fixed::result_of::algorithm::type, typename std::decay::type - > random_swap_result_impl_1( - Container const& cont, - RandomSwapped const& random_swapped - ) - { + > + random_swap_result_impl_1(Container const& cont, RandomSwapped const& random_swapped) { typedef sprout::tuples::tuple< typename sprout::fixed::result_of::algorithm::type, typename std::decay::type @@ -103,9 +92,9 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fixed::result_of::algorithm::type, typename std::decay::type - > random_swap_result_impl( - Container const& cont, - UniformRandomNumberGenerator&& g, + > + random_swap_result_impl( + Container const& cont, UniformRandomNumberGenerator&& g, typename sprout::container_traits::size_type size ) { @@ -125,14 +114,10 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fixed::result_of::algorithm::type, typename std::decay::type - > random_swap_result( - Container const& cont, - UniformRandomNumberGenerator&& g - ) - { + > + random_swap_result(Container const& cont, UniformRandomNumberGenerator&& g) { return sprout::fixed::detail::random_swap_result_impl( - cont, - sprout::forward(g), + cont, sprout::forward(g), sprout::size(cont) ); } diff --git a/sprout/algorithm/fixed/recurrence.hpp b/sprout/algorithm/fixed/recurrence.hpp index db179fe7..dd80aec6 100644 --- a/sprout/algorithm/fixed/recurrence.hpp +++ b/sprout/algorithm/fixed/recurrence.hpp @@ -17,41 +17,30 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< InitSize == 0, typename sprout::container_traits::value_type - >::type call_gen( - Generator const& gen, - Args const&... args - ) - { + >::type + call_gen(Generator const& gen, Args const&... args) { return gen(); } template inline SPROUT_CONSTEXPR typename std::enable_if< InitSize != 0 && InitSize == sizeof...(Args) + 1, typename sprout::container_traits::value_type - >::type call_gen( - Generator const& gen, - Head const& head, - Args const&... args - ) - { + >::type + call_gen(Generator const& gen, Head const& head, Args const&... args) { return gen(head, args...); } template inline SPROUT_CONSTEXPR typename std::enable_if< InitSize != 0 && InitSize != sizeof...(Args) + 1, typename sprout::container_traits::value_type - >::type call_gen( - Generator const& gen, - Head const& head, - Args const&... args - ) - { + >::type + call_gen(Generator const& gen, Head const& head, Args const&... args) { return call_gen(gen, args...); } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type recurrence_impl_drop( - Container const& cont, - Generator const& gen, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + recurrence_impl_drop( + Container const& cont, Generator const& gen, typename sprout::container_traits::size_type size ) { @@ -61,12 +50,11 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< (sprout::container_traits::static_size >= sizeof...(Inits) + 1), typename sprout::fixed::result_of::algorithm::type - >::type recurrence_impl_drop( - Container const& cont, - Generator const& gen, + >::type + recurrence_impl_drop( + Container const& cont, Generator const& gen, typename sprout::container_traits::size_type size, - Head const& head, - Inits const&... inits + Head const& head, Inits const&... inits ) { return size < sizeof...(Inits) + 1 @@ -78,12 +66,11 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< (sprout::container_traits::static_size < sizeof...(Inits) + 1), typename sprout::fixed::result_of::algorithm::type - >::type recurrence_impl_drop( - Container const& cont, - Generator const& gen, + >::type + recurrence_impl_drop( + Container const& cont, Generator const& gen, typename sprout::container_traits::size_type size, - Head const& head, - Inits const&... inits + Head const& head, Inits const&... inits ) { return sprout::fixed::detail::recurrence_impl_drop(cont, gen, size, inits...); @@ -92,9 +79,9 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type recurrence_impl_1( - Container const& cont, - Generator const& gen, + >::type + recurrence_impl_1( + Container const& cont, Generator const& gen, typename sprout::container_traits::size_type size, Args const&... args ) @@ -105,15 +92,19 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type recurrence_impl_1( - Container const& cont, - Generator const& gen, + >::type + recurrence_impl_1( + Container const& cont, Generator const& gen, typename sprout::container_traits::size_type size, Args const&... args ) { return sizeof...(Args) < size - ? sprout::fixed::detail::recurrence_impl_1(cont, gen, size, args..., sprout::fixed::detail::call_gen(gen, args...)) + ? sprout::fixed::detail::recurrence_impl_1( + cont, gen, + size, + args..., sprout::fixed::detail::call_gen(gen, args...) + ) : sprout::detail::container_complate(cont, args...) ; } @@ -121,9 +112,9 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< (sprout::container_traits::static_size > sizeof...(Inits)), typename sprout::fixed::result_of::algorithm::type - >::type recurrence_impl( - Container const& cont, - Generator const& gen, + >::type + recurrence_impl( + Container const& cont, Generator const& gen, typename sprout::container_traits::size_type size, Inits const&... inits ) @@ -137,9 +128,9 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< (sprout::container_traits::static_size <= sizeof...(Inits)), typename sprout::fixed::result_of::algorithm::type - >::type recurrence_impl( - Container const& cont, - Generator const& gen, + >::type + recurrence_impl( + Container const& cont, Generator const& gen, typename sprout::container_traits::size_type size, Inits const&... inits ) @@ -151,12 +142,8 @@ namespace sprout { // recurrence // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type recurrence( - Container const& cont, - Generator const& gen, - Inits const&... inits - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + recurrence(Container const& cont, Generator const& gen, Inits const&... inits) { return sprout::fixed::detail::recurrence_impl(cont, gen, sprout::size(cont), inits...); } } // namespace fixed diff --git a/sprout/algorithm/fixed/recurrence_n.hpp b/sprout/algorithm/fixed/recurrence_n.hpp index c57554b5..5059d2c4 100644 --- a/sprout/algorithm/fixed/recurrence_n.hpp +++ b/sprout/algorithm/fixed/recurrence_n.hpp @@ -12,13 +12,8 @@ namespace sprout { // recurrence_n // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type recurrence_n( - Container const& cont, - Size n, - Generator const& gen, - Inits const&... inits - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + recurrence_n(Container const& cont, Size n, Generator const& gen, Inits const&... inits) { return sprout::fixed::detail::recurrence_impl(cont, gen, n, inits...); } } // namespace fixed diff --git a/sprout/algorithm/fixed/remove.hpp b/sprout/algorithm/fixed/remove.hpp index 881f9f7d..9cca6d20 100644 --- a/sprout/algorithm/fixed/remove.hpp +++ b/sprout/algorithm/fixed/remove.hpp @@ -13,11 +13,8 @@ namespace sprout { // remove // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type remove( - Container const& cont, - T const& value - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + remove(Container const& cont, T const& value) { return sprout::fixed::remove_copy(sprout::begin(cont), sprout::end(cont), cont, value); } } // namespace fixed diff --git a/sprout/algorithm/fixed/remove_copy.hpp b/sprout/algorithm/fixed/remove_copy.hpp index 896787b5..3d308e9e 100644 --- a/sprout/algorithm/fixed/remove_copy.hpp +++ b/sprout/algorithm/fixed/remove_copy.hpp @@ -16,11 +16,10 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type remove_copy_impl( - InputIterator first, - InputIterator last, - Result const& result, - T const& value, + >::type + remove_copy_impl( + InputIterator first, InputIterator last, + Result const& result, T const& value, typename sprout::container_traits::size_type size, Args const&... args ) @@ -31,11 +30,10 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type remove_copy_impl( - InputIterator first, - InputIterator last, - Result const& result, - T const& value, + >::type + remove_copy_impl( + InputIterator first, InputIterator last, + Result const& result, T const& value, typename sprout::container_traits::size_type size, Args const&... args ) @@ -52,13 +50,8 @@ namespace sprout { // remove_copy // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type remove_copy( - InputIterator first, - InputIterator last, - Result const& result, - T const& value - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + remove_copy(InputIterator first, InputIterator last, Result const& result, T const& value) { return sprout::fixed::detail::remove_copy_impl(first, last, result, value, sprout::size(result)); } } // namespace fixed diff --git a/sprout/algorithm/fixed/remove_copy_if.hpp b/sprout/algorithm/fixed/remove_copy_if.hpp index 40f33a7c..bc047e16 100644 --- a/sprout/algorithm/fixed/remove_copy_if.hpp +++ b/sprout/algorithm/fixed/remove_copy_if.hpp @@ -16,11 +16,10 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type remove_copy_if_impl( - InputIterator first, - InputIterator last, - Result const& result, - Predicate pred, + >::type + remove_copy_if_impl( + InputIterator first, InputIterator last, + Result const& result, Predicate pred, typename sprout::container_traits::size_type size, Args const&... args ) @@ -31,11 +30,10 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type remove_copy_if_impl( - InputIterator first, - InputIterator last, - Result const& result, - Predicate pred, + >::type + remove_copy_if_impl( + InputIterator first, InputIterator last, + Result const& result, Predicate pred, typename sprout::container_traits::size_type size, Args const&... args ) @@ -52,13 +50,8 @@ namespace sprout { // remove_copy_if // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type remove_copy_if( - InputIterator first, - InputIterator last, - Result const& result, - Predicate pred - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + remove_copy_if(InputIterator first, InputIterator last, Result const& result, Predicate pred) { return sprout::fixed::detail::remove_copy_if_impl(first, last, result, pred, sprout::size(result)); } } // namespace fixed diff --git a/sprout/algorithm/fixed/remove_if.hpp b/sprout/algorithm/fixed/remove_if.hpp index b5f95f03..32f98fa4 100644 --- a/sprout/algorithm/fixed/remove_if.hpp +++ b/sprout/algorithm/fixed/remove_if.hpp @@ -13,11 +13,8 @@ namespace sprout { // remove_if // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type remove_if( - Container const& cont, - Predicate pred - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + remove_if(Container const& cont, Predicate pred) { return sprout::fixed::remove_copy_if(sprout::begin(cont), sprout::end(cont), cont, pred); } } // namespace fixed diff --git a/sprout/algorithm/fixed/replace.hpp b/sprout/algorithm/fixed/replace.hpp index 69ad5aff..0ba2b4ab 100644 --- a/sprout/algorithm/fixed/replace.hpp +++ b/sprout/algorithm/fixed/replace.hpp @@ -13,12 +13,8 @@ namespace sprout { // replace // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type replace( - Container const& cont, - T const& old_value, - T const& new_value - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + replace(Container const& cont, T const& old_value, T const& new_value) { return sprout::fixed::replace_copy(sprout::begin(cont), sprout::end(cont), cont, old_value, new_value); } } // namespace fixed diff --git a/sprout/algorithm/fixed/replace_copy.hpp b/sprout/algorithm/fixed/replace_copy.hpp index 3fe9cc8d..e57bb103 100644 --- a/sprout/algorithm/fixed/replace_copy.hpp +++ b/sprout/algorithm/fixed/replace_copy.hpp @@ -17,12 +17,10 @@ namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type replace_copy_impl_ra( - RandomAccessIterator first, - RandomAccessIterator last, - Result const& result, - T const& old_value, - T const& new_value, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + replace_copy_impl_ra( + RandomAccessIterator first, RandomAccessIterator last, + Result const& result, T const& old_value, T const& new_value, sprout::index_tuple, typename sprout::container_traits::difference_type offset, typename sprout::container_traits::size_type size, @@ -39,21 +37,16 @@ namespace sprout { ); } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type replace_copy( - RandomAccessIterator first, - RandomAccessIterator last, - Result const& result, - T const& old_value, - T const& new_value, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + replace_copy( + RandomAccessIterator first, RandomAccessIterator last, + Result const& result, T const& old_value, T const& new_value, std::random_access_iterator_tag* ) { return sprout::fixed::detail::replace_copy_impl_ra( - first, - last, - result, - old_value, - new_value, + first, last, + result, old_value, new_value, sprout::index_range<0, sprout::container_traits::static_size>::make(), sprout::internal_begin_offset(result), sprout::size(result), @@ -64,12 +57,10 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type replace_copy_impl( - InputIterator first, - InputIterator last, - Result const& result, - T const& old_value, - T const& new_value, + >::type + replace_copy_impl( + InputIterator first, InputIterator last, + Result const& result, T const& old_value, T const& new_value, typename sprout::container_traits::size_type size, Args const&... args ) @@ -80,28 +71,28 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type replace_copy_impl( - InputIterator first, - InputIterator last, - Result const& result, - T const& old_value, - T const& new_value, + >::type + replace_copy_impl( + InputIterator first, InputIterator last, + Result const& result, T const& old_value, T const& new_value, typename sprout::container_traits::size_type size, Args const&... args ) { return first != last && sizeof...(Args) < size - ? replace_copy_impl(sprout::next(first), last, result, old_value, new_value, size, args..., *first == old_value ? new_value : *first) + ? replace_copy_impl( + sprout::next(first), last, result, old_value, new_value, + size, + args..., *first == old_value ? new_value : *first + ) : sprout::detail::container_complate(result, args...) ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type replace_copy( - InputIterator first, - InputIterator last, - Result const& result, - T const& old_value, - T const& new_value, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + replace_copy( + InputIterator first, InputIterator last, + Result const& result, T const& old_value, T const& new_value, void* ) { @@ -112,14 +103,8 @@ namespace sprout { // replace_copy // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type replace_copy( - InputIterator first, - InputIterator last, - Result const& result, - T const& old_value, - T const& new_value - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + replace_copy(InputIterator first, InputIterator last, Result const& result, T const& old_value, T const& new_value) { typedef typename std::iterator_traits::iterator_category* category; return sprout::fixed::detail::replace_copy(first, last, result, old_value, new_value, category()); } diff --git a/sprout/algorithm/fixed/replace_copy_if.hpp b/sprout/algorithm/fixed/replace_copy_if.hpp index 549ad139..a6ff2f65 100644 --- a/sprout/algorithm/fixed/replace_copy_if.hpp +++ b/sprout/algorithm/fixed/replace_copy_if.hpp @@ -16,12 +16,10 @@ namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type replace_copy_if_impl_ra( - RandomAccessIterator first, - RandomAccessIterator last, - Result const& result, - Predicate pred, - T const& new_value, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + replace_copy_if_impl_ra( + RandomAccessIterator first, RandomAccessIterator last, + Result const& result, Predicate pred, T const& new_value, sprout::index_tuple, typename sprout::container_traits::difference_type offset, typename sprout::container_traits::size_type size, @@ -38,21 +36,16 @@ namespace sprout { ); } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type replace_copy_if( - RandomAccessIterator first, - RandomAccessIterator last, - Result const& result, - Predicate pred, - T const& new_value, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + replace_copy_if( + RandomAccessIterator first, RandomAccessIterator last, + Result const& result, Predicate pred, T const& new_value, std::random_access_iterator_tag* ) { return sprout::fixed::detail::replace_copy_if_impl_ra( - first, - last, - result, - pred, - new_value, + first, last, + result, pred, new_value, sprout::index_range<0, sprout::container_traits::static_size>::make(), sprout::internal_begin_offset(result), sprout::size(result), @@ -63,12 +56,10 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type replace_copy_if_impl( - InputIterator first, - InputIterator last, - Result const& result, - Predicate pred, - T const& new_value, + >::type + replace_copy_if_impl( + InputIterator first, InputIterator last, + Result const& result, Predicate pred, T const& new_value, typename sprout::container_traits::size_type size, Args const&... args ) @@ -79,28 +70,28 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type replace_copy_if_impl( - InputIterator first, - InputIterator last, - Result const& result, - Predicate pred, - T const& new_value, + >::type + replace_copy_if_impl( + InputIterator first, InputIterator last, + Result const& result, Predicate pred, T const& new_value, typename sprout::container_traits::size_type size, Args const&... args ) { return first != last && sizeof...(Args) < size - ? replace_copy_if_impl(sprout::next(first), last, result, pred, new_value, size, args..., pred(*first) ? new_value : *first) + ? replace_copy_if_impl( + sprout::next(first), last, result, pred, new_value, + size, + args..., pred(*first) ? new_value : *first + ) : sprout::detail::container_complate(result, args...) ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type replace_copy_if( - InputIterator first, - InputIterator last, - Result const& result, - Predicate pred, - T const& new_value, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + replace_copy_if( + InputIterator first, InputIterator last, + Result const& result, Predicate pred, T const& new_value, void* ) { @@ -111,14 +102,8 @@ namespace sprout { // replace_copy_if // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type replace_copy_if( - InputIterator first, - InputIterator last, - Result const& result, - Predicate pred, - T const& new_value - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + replace_copy_if(InputIterator first, InputIterator last, Result const& result, Predicate pred, T const& new_value) { typedef typename std::iterator_traits::iterator_category* category; return sprout::fixed::detail::replace_copy_if(first, last, result, pred, new_value, category()); } diff --git a/sprout/algorithm/fixed/replace_if.hpp b/sprout/algorithm/fixed/replace_if.hpp index a0055830..ab1cea06 100644 --- a/sprout/algorithm/fixed/replace_if.hpp +++ b/sprout/algorithm/fixed/replace_if.hpp @@ -13,12 +13,8 @@ namespace sprout { // replace_if // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type replace_if( - Container const& cont, - Predicate pred, - T const& new_value - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + replace_if(Container const& cont, Predicate pred, T const& new_value) { return sprout::fixed::replace_copy_if(sprout::begin(cont), sprout::end(cont), cont, pred, new_value); } } // namespace fixed diff --git a/sprout/algorithm/fixed/reverse.hpp b/sprout/algorithm/fixed/reverse.hpp index e4455f5a..c91d2775 100644 --- a/sprout/algorithm/fixed/reverse.hpp +++ b/sprout/algorithm/fixed/reverse.hpp @@ -13,10 +13,8 @@ namespace sprout { // reverse // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type reverse( - Container const& cont - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + reverse(Container const& cont) { return sprout::fixed::reverse_copy(sprout::begin(cont), sprout::end(cont), cont); } } // namespace fixed diff --git a/sprout/algorithm/fixed/reverse_copy.hpp b/sprout/algorithm/fixed/reverse_copy.hpp index 8a2bc0d3..14f9a101 100644 --- a/sprout/algorithm/fixed/reverse_copy.hpp +++ b/sprout/algorithm/fixed/reverse_copy.hpp @@ -16,10 +16,9 @@ namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type reverse_copy_impl_ra( - RandomAccessIterator first, - RandomAccessIterator last, - Result const& result, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + reverse_copy_impl_ra( + RandomAccessIterator first, RandomAccessIterator last, Result const& result, sprout::index_tuple, typename sprout::container_traits::difference_type offset, typename sprout::container_traits::size_type size, @@ -36,17 +35,14 @@ namespace sprout { ); } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type reverse_copy( - RandomAccessIterator first, - RandomAccessIterator last, - Result const& result, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + reverse_copy( + RandomAccessIterator first, RandomAccessIterator last, Result const& result, std::random_access_iterator_tag* ) { return sprout::fixed::detail::reverse_copy_impl_ra( - first, - last, - result, + first, last, result, sprout::index_range<0, sprout::container_traits::static_size>::make(), sprout::internal_begin_offset(result), sprout::size(result), @@ -57,10 +53,9 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type reverse_copy_impl( - BidirectionalIterator first, - BidirectionalIterator last, - Result const& result, + >::type + reverse_copy_impl( + BidirectionalIterator first, BidirectionalIterator last, Result const& result, typename sprout::container_traits::size_type size, Args const&... args ) @@ -71,10 +66,9 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type reverse_copy_impl( - BidirectionalIterator first, - BidirectionalIterator last, - Result const& result, + >::type + reverse_copy_impl( + BidirectionalIterator first, BidirectionalIterator last, Result const& result, typename sprout::container_traits::size_type size, Args const&... args ) @@ -85,10 +79,9 @@ namespace sprout { ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type reverse_copy( - BidirectionalIterator first, - BidirectionalIterator last, - Result const& result, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + reverse_copy( + BidirectionalIterator first, BidirectionalIterator last, Result const& result, void* ) { @@ -99,12 +92,8 @@ namespace sprout { // reverse_copy // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type reverse_copy( - BidirectionalIterator first, - BidirectionalIterator last, - Result const& result - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + reverse_copy(BidirectionalIterator first, BidirectionalIterator last, Result const& result) { typedef typename std::iterator_traits::iterator_category* category; return sprout::fixed::detail::reverse_copy(first, last, result, category()); } diff --git a/sprout/algorithm/fixed/rotate.hpp b/sprout/algorithm/fixed/rotate.hpp index 8f1da692..586835b4 100644 --- a/sprout/algorithm/fixed/rotate.hpp +++ b/sprout/algorithm/fixed/rotate.hpp @@ -13,11 +13,8 @@ namespace sprout { // rotate // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type rotate( - Container const& cont, - typename sprout::container_traits::const_iterator middle - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + rotate(Container const& cont, typename sprout::container_traits::const_iterator middle) { return sprout::fixed::rotate_copy(sprout::begin(cont), middle, sprout::end(cont), cont); } } // namespace fixed diff --git a/sprout/algorithm/fixed/rotate_copy.hpp b/sprout/algorithm/fixed/rotate_copy.hpp index f62821cd..a23574ea 100644 --- a/sprout/algorithm/fixed/rotate_copy.hpp +++ b/sprout/algorithm/fixed/rotate_copy.hpp @@ -16,10 +16,9 @@ namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type rotate_copy_impl_ra( - RandomAccessIterator first, - RandomAccessIterator middle, - RandomAccessIterator last, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + rotate_copy_impl_ra( + RandomAccessIterator first, RandomAccessIterator middle, RandomAccessIterator last, Result const& result, sprout::index_tuple, typename sprout::container_traits::difference_type offset, @@ -40,10 +39,9 @@ namespace sprout { ); } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type rotate_copy( - RandomAccessIterator first, - RandomAccessIterator middle, - RandomAccessIterator last, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + rotate_copy( + RandomAccessIterator first, RandomAccessIterator middle, RandomAccessIterator last, Result const& result, std::random_access_iterator_tag* ) @@ -63,9 +61,9 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type rotate_copy_impl_1( - ForwardIterator first, - ForwardIterator last, + >::type + rotate_copy_impl_1( + ForwardIterator first, ForwardIterator last, Result const& result, typename sprout::container_traits::size_type size, Args const&... args @@ -77,9 +75,9 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type rotate_copy_impl_1( - ForwardIterator first, - ForwardIterator last, + >::type + rotate_copy_impl_1( + ForwardIterator first, ForwardIterator last, Result const& result, typename sprout::container_traits::size_type size, Args const&... args @@ -94,11 +92,10 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type rotate_copy_impl( - ForwardIterator first, - ForwardIterator middle, - ForwardIterator middle_first, - ForwardIterator last, + >::type + rotate_copy_impl( + ForwardIterator first, ForwardIterator middle, + ForwardIterator middle_first, ForwardIterator last, Result const& result, typename sprout::container_traits::size_type size, Args const&... args @@ -110,11 +107,10 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type rotate_copy_impl( - ForwardIterator first, - ForwardIterator middle, - ForwardIterator middle_first, - ForwardIterator last, + >::type + rotate_copy_impl( + ForwardIterator first, ForwardIterator middle, + ForwardIterator middle_first, ForwardIterator last, Result const& result, typename sprout::container_traits::size_type size, Args const&... args @@ -126,11 +122,9 @@ namespace sprout { ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type rotate_copy( - ForwardIterator first, - ForwardIterator middle, - ForwardIterator last, - Result const& result, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + rotate_copy( + ForwardIterator first, ForwardIterator middle, ForwardIterator last, Result const& result, void* ) { @@ -141,13 +135,8 @@ namespace sprout { // rotate_copy // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type rotate_copy( - ForwardIterator first, - ForwardIterator middle, - ForwardIterator last, - Result const& result - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + rotate_copy(ForwardIterator first, ForwardIterator middle, ForwardIterator last, Result const& result) { typedef typename std::iterator_traits::iterator_category* category; return sprout::fixed::detail::rotate_copy(first, middle, last, result, category()); } diff --git a/sprout/algorithm/fixed/set_difference.hpp b/sprout/algorithm/fixed/set_difference.hpp index c279b5f6..6544b168 100644 --- a/sprout/algorithm/fixed/set_difference.hpp +++ b/sprout/algorithm/fixed/set_difference.hpp @@ -17,13 +17,11 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type set_difference_impl( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, - Result const& result, - Compare comp, + >::type + set_difference_impl( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + Result const& result, Compare comp, typename sprout::container_traits::size_type size, Args const&... args ) @@ -34,13 +32,11 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type set_difference_impl( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, - Result const& result, - Compare comp, + >::type + set_difference_impl( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + Result const& result, Compare comp, typename sprout::container_traits::size_type size, Args const&... args ) @@ -49,14 +45,29 @@ namespace sprout { ? first1 != last1 ? first2 != last2 ? comp(*first1, *first2) - ? sprout::fixed::detail::set_difference_impl(sprout::next(first1), last1, first2, last2, result, comp, size, args..., *first1) + ? sprout::fixed::detail::set_difference_impl( + sprout::next(first1), last1, first2, last2, result, comp, + size, args..., *first1 + ) : comp(*first2, *first1) - ? sprout::fixed::detail::set_difference_impl(first1, last1, sprout::next(first2), last2, result, comp, size, args...) - : sprout::fixed::detail::set_difference_impl(sprout::next(first1), last1, sprout::next(first2), last2, result, comp, size, args...) - : sprout::fixed::detail::set_difference_impl(sprout::next(first1), last1, first2, last2, result, comp, size, args..., *first1) + ? sprout::fixed::detail::set_difference_impl( + first1, last1, sprout::next(first2), last2, result, comp, + size, args... + ) + : sprout::fixed::detail::set_difference_impl( + sprout::next(first1), last1, sprout::next(first2), last2, result, comp, + size, args... + ) + : sprout::fixed::detail::set_difference_impl( + sprout::next(first1), last1, first2, last2, result, comp, + size, args..., *first1 + ) : first2 != last2 - ? sprout::fixed::detail::set_difference_impl(first1, last1, sprout::next(first2), last2, result, comp, size, args...) - : sprout::detail::container_complate(result, args...) + ? sprout::fixed::detail::set_difference_impl( + first1, last1, sprout::next(first2), last2, result, comp, + size, args... + ) + : sprout::detail::container_complate(result, args...) : sprout::detail::container_complate(result, args...) ; } @@ -65,44 +76,32 @@ namespace sprout { // set_difference // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type set_difference( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, - Result const& result, - Compare comp + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + set_difference( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + Result const& result, Compare comp ) { return sprout::fixed::detail::set_difference_impl( - first1, - last1, - first2, - last2, - result, - comp, + first1, last1, + first2, last2, + result, comp, sprout::size(result) ); } - // - // set_difference - // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type set_difference( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + set_difference( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, Result const& result ) { return sprout::fixed::detail::set_difference_impl( - first1, - last1, - first2, - last2, - result, - NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), + first1, last1, + first2, last2, + result, NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), sprout::size(result) ); } diff --git a/sprout/algorithm/fixed/set_intersection.hpp b/sprout/algorithm/fixed/set_intersection.hpp index 69bc8bbc..c86617f8 100644 --- a/sprout/algorithm/fixed/set_intersection.hpp +++ b/sprout/algorithm/fixed/set_intersection.hpp @@ -17,13 +17,11 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type set_intersection_impl( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, - Result const& result, - Compare comp, + >::type + set_intersection_impl( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + Result const& result, Compare comp, typename sprout::container_traits::size_type size, Args const&... args ) @@ -34,13 +32,11 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type set_intersection_impl( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, - Result const& result, - Compare comp, + >::type + set_intersection_impl( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + Result const& result, Compare comp, typename sprout::container_traits::size_type size, Args const&... args ) @@ -49,14 +45,29 @@ namespace sprout { ? first1 != last1 ? first2 != last2 ? comp(*first1, *first2) - ? sprout::fixed::detail::set_intersection_impl(sprout::next(first1), last1, first2, last2, result, comp, size, args...) + ? sprout::fixed::detail::set_intersection_impl( + sprout::next(first1), last1, first2, last2, result, comp, + size, args... + ) : comp(*first2, *first1) - ? sprout::fixed::detail::set_intersection_impl(first1, last1, sprout::next(first2), last2, result, comp, size, args...) - : sprout::fixed::detail::set_intersection_impl(sprout::next(first1), last1, sprout::next(first2), last2, result, comp, size, args..., *first1) - : sprout::fixed::detail::set_intersection_impl(sprout::next(first1), last1, first2, last2, result, comp, size, args...) + ? sprout::fixed::detail::set_intersection_impl( + first1, last1, sprout::next(first2), last2, result, comp, + size, args... + ) + : sprout::fixed::detail::set_intersection_impl( + sprout::next(first1), last1, sprout::next(first2), last2, result, comp, + size, args..., *first1 + ) + : sprout::fixed::detail::set_intersection_impl( + sprout::next(first1), last1, first2, last2, result, comp, + size, args... + ) : first2 != last2 - ? sprout::fixed::detail::set_intersection_impl(first1, last1, sprout::next(first2), last2, result, comp, size, args...) - : sprout::detail::container_complate(result, args...) + ? sprout::fixed::detail::set_intersection_impl( + first1, last1, sprout::next(first2), last2, result, comp, + size, args... + ) + : sprout::detail::container_complate(result, args...) : sprout::detail::container_complate(result, args...) ; } @@ -65,44 +76,32 @@ namespace sprout { // set_intersection // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type set_intersection( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, - Result const& result, - Compare comp + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + set_intersection( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + Result const& result, Compare comp ) { return sprout::fixed::detail::set_intersection_impl( - first1, - last1, - first2, - last2, - result, - comp, + first1, last1, + first2, last2, + result, comp, sprout::size(result) ); } - // - // set_intersection - // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type set_intersection( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + set_intersection( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, Result const& result ) { return sprout::fixed::detail::set_intersection_impl( - first1, - last1, - first2, - last2, - result, - NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), + first1, last1, + first2, last2, + result, NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), sprout::size(result) ); } diff --git a/sprout/algorithm/fixed/set_symmetric_difference.hpp b/sprout/algorithm/fixed/set_symmetric_difference.hpp index f6cf84fd..7a14f95c 100644 --- a/sprout/algorithm/fixed/set_symmetric_difference.hpp +++ b/sprout/algorithm/fixed/set_symmetric_difference.hpp @@ -17,13 +17,11 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type set_symmetric_difference_impl( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, - Result const& result, - Compare comp, + >::type + set_symmetric_difference_impl( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + Result const& result, Compare comp, typename sprout::container_traits::size_type size, Args const&... args ) @@ -34,13 +32,11 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type set_symmetric_difference_impl( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, - Result const& result, - Compare comp, + >::type + set_symmetric_difference_impl( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + Result const& result, Compare comp, typename sprout::container_traits::size_type size, Args const&... args ) @@ -49,14 +45,29 @@ namespace sprout { ? first1 != last1 ? first2 != last2 ? comp(*first1, *first2) - ? sprout::fixed::detail::set_symmetric_difference_impl(sprout::next(first1), last1, first2, last2, result, comp, size, args..., *first1) + ? sprout::fixed::detail::set_symmetric_difference_impl( + sprout::next(first1), last1, first2, last2, result, comp, + size, args..., *first1 + ) : comp(*first2, *first1) - ? sprout::fixed::detail::set_symmetric_difference_impl(first1, last1, sprout::next(first2), last2, result, comp, size, args..., *first2) - : sprout::fixed::detail::set_symmetric_difference_impl(sprout::next(first1), last1, sprout::next(first2), last2, result, comp, size, args...) - : sprout::fixed::detail::set_symmetric_difference_impl(sprout::next(first1), last1, first2, last2, result, comp, size, args..., *first1) + ? sprout::fixed::detail::set_symmetric_difference_impl( + first1, last1, sprout::next(first2), last2, result, comp, + size, args..., *first2 + ) + : sprout::fixed::detail::set_symmetric_difference_impl( + sprout::next(first1), last1, sprout::next(first2), last2, result, comp, + size, args... + ) + : sprout::fixed::detail::set_symmetric_difference_impl( + sprout::next(first1), last1, first2, last2, result, comp, + size, args..., *first1 + ) : first2 != last2 - ? sprout::fixed::detail::set_symmetric_difference_impl(first1, last1, sprout::next(first2), last2, result, comp, size, args..., *first2) - : sprout::detail::container_complate(result, args...) + ? sprout::fixed::detail::set_symmetric_difference_impl( + first1, last1, sprout::next(first2), last2, result, comp, + size, args..., *first2 + ) + : sprout::detail::container_complate(result, args...) : sprout::detail::container_complate(result, args...) ; } @@ -65,44 +76,32 @@ namespace sprout { // set_symmetric_difference // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type set_symmetric_difference( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, - Result const& result, - Compare comp + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + set_symmetric_difference( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + Result const& result, Compare comp ) { return sprout::fixed::detail::set_symmetric_difference_impl( - first1, - last1, - first2, - last2, - result, - comp, + first1, last1, + first2, last2, + result, comp, sprout::size(result) ); } - // - // set_symmetric_difference - // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type set_symmetric_difference( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + set_symmetric_difference( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, Result const& result ) { return sprout::fixed::detail::set_symmetric_difference_impl( - first1, - last1, - first2, - last2, - result, - NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), + first1, last1, + first2, last2, + result, NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), sprout::size(result) ); } diff --git a/sprout/algorithm/fixed/set_union.hpp b/sprout/algorithm/fixed/set_union.hpp index d45c83a1..df386106 100644 --- a/sprout/algorithm/fixed/set_union.hpp +++ b/sprout/algorithm/fixed/set_union.hpp @@ -17,13 +17,11 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type set_union_impl( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, - Result const& result, - Compare comp, + >::type + set_union_impl( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + Result const& result, Compare comp, typename sprout::container_traits::size_type size, Args const&... args ) @@ -34,13 +32,11 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type set_union_impl( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, - Result const& result, - Compare comp, + >::type + set_union_impl( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + Result const& result, Compare comp, typename sprout::container_traits::size_type size, Args const&... args ) @@ -49,14 +45,29 @@ namespace sprout { ? first1 != last1 ? first2 != last2 ? comp(*first1, *first2) - ? sprout::fixed::detail::set_union_impl(sprout::next(first1), last1, first2, last2, result, comp, size, args..., *first1) + ? sprout::fixed::detail::set_union_impl( + sprout::next(first1), last1, first2, last2, result, comp, + size, args..., *first1 + ) : comp(*first2, *first1) - ? sprout::fixed::detail::set_union_impl(first1, last1, sprout::next(first2), last2, result, comp, size, args..., *first2) - : sprout::fixed::detail::set_union_impl(sprout::next(first1), last1, sprout::next(first2), last2, result, comp, size, args..., *first1) - : sprout::fixed::detail::set_union_impl(sprout::next(first1), last1, first2, last2, result, comp, size, args..., *first1) + ? sprout::fixed::detail::set_union_impl( + first1, last1, sprout::next(first2), last2, result, comp, + size, args..., *first2 + ) + : sprout::fixed::detail::set_union_impl( + sprout::next(first1), last1, sprout::next(first2), last2, result, comp, + size, args..., *first1 + ) + : sprout::fixed::detail::set_union_impl( + sprout::next(first1), last1, first2, last2, result, comp, + size, args..., *first1 + ) : first2 != last2 - ? sprout::fixed::detail::set_union_impl(first1, last1, sprout::next(first2), last2, result, comp, size, args..., *first2) - : sprout::detail::container_complate(result, args...) + ? sprout::fixed::detail::set_union_impl( + first1, last1, sprout::next(first2), last2, result, comp, + size, args..., *first2 + ) + : sprout::detail::container_complate(result, args...) : sprout::detail::container_complate(result, args...) ; } @@ -65,44 +76,32 @@ namespace sprout { // set_union // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type set_union( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, - Result const& result, - Compare comp + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + set_union( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, + Result const& result, Compare comp ) { return sprout::fixed::detail::set_union_impl( - first1, - last1, - first2, - last2, - result, - comp, + first1, last1, + first2, last2, + result, comp, sprout::size(result) ); } - // - // set_union - // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type set_union( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + set_union( + InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, InputIterator2 last2, Result const& result ) { return sprout::fixed::detail::set_union_impl( - first1, - last1, - first2, - last2, - result, - NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), + first1, last1, + first2, last2, + result, NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), sprout::size(result) ); } diff --git a/sprout/algorithm/fixed/shuffle.hpp b/sprout/algorithm/fixed/shuffle.hpp index 5977b1f3..a70973ea 100644 --- a/sprout/algorithm/fixed/shuffle.hpp +++ b/sprout/algorithm/fixed/shuffle.hpp @@ -19,13 +19,8 @@ namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR sprout::array make_shuffle_indexes_1( - std::ptrdiff_t n, - Random const& rnd, - sprout::array const& arr, - std::ptrdiff_t i - ) - { + inline SPROUT_CONSTEXPR sprout::array + make_shuffle_indexes_1(std::ptrdiff_t n, Random const& rnd, sprout::array const& arr, std::ptrdiff_t i) { return i < n - 1 ? sprout::fixed::detail::make_shuffle_indexes_1( n, @@ -37,11 +32,8 @@ namespace sprout { ; } template - inline SPROUT_CONSTEXPR sprout::array make_shuffle_indexes( - std::ptrdiff_t n, - UniformRandomNumberGenerator&& g - ) - { + inline SPROUT_CONSTEXPR sprout::array + make_shuffle_indexes(std::ptrdiff_t n, UniformRandomNumberGenerator&& g) { return n > 1 ? sprout::fixed::detail::make_shuffle_indexes_1( n, @@ -53,7 +45,8 @@ namespace sprout { ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type shuffle_impl_1( + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + shuffle_impl_1( Container const& cont, sprout::index_tuple, Shuffled const& shuffled, @@ -71,7 +64,8 @@ namespace sprout { ); } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type shuffle_impl( + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + shuffle_impl( Container const& cont, sprout::index_tuple indexes, UniformRandomNumberGenerator&& g, @@ -95,11 +89,8 @@ namespace sprout { // shuffle // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type shuffle( - Container const& cont, - UniformRandomNumberGenerator&& g - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + shuffle(Container const& cont, UniformRandomNumberGenerator&& g) { return sprout::fixed::detail::shuffle_impl( cont, sprout::index_range<0, sprout::container_traits::static_size>::make(), diff --git a/sprout/algorithm/fixed/shuffle_result.hpp b/sprout/algorithm/fixed/shuffle_result.hpp index 8a06f3b3..8c3d2195 100644 --- a/sprout/algorithm/fixed/shuffle_result.hpp +++ b/sprout/algorithm/fixed/shuffle_result.hpp @@ -24,13 +24,8 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< sprout::array, typename std::decay::type - > make_shuffle_result_indexes_1( - std::ptrdiff_t n, - Random const& rnd, - sprout::array const& arr, - std::ptrdiff_t i - ) - { + > + make_shuffle_result_indexes_1(std::ptrdiff_t n, Random const& rnd, sprout::array const& arr, std::ptrdiff_t i) { typedef sprout::tuples::tuple< sprout::array, typename std::decay::type @@ -52,11 +47,8 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< sprout::array, typename std::decay::type - > make_shuffle_result_indexes( - std::ptrdiff_t n, - UniformRandomNumberGenerator&& g - ) - { + > + make_shuffle_result_indexes(std::ptrdiff_t n, UniformRandomNumberGenerator&& g) { typedef sprout::tuples::tuple< sprout::array, typename std::decay::type @@ -78,7 +70,8 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fixed::result_of::algorithm::type, typename std::decay::type - > shuffle_result_impl_1( + > + shuffle_result_impl_1( Container const& cont, sprout::index_tuple, Shuffled const& shuffled, @@ -106,7 +99,8 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fixed::result_of::algorithm::type, typename std::decay::type - > shuffle_result_impl( + > + shuffle_result_impl( Container const& cont, sprout::index_tuple indexes, UniformRandomNumberGenerator&& g, @@ -133,11 +127,8 @@ namespace sprout { inline SPROUT_CONSTEXPR sprout::tuples::tuple< typename sprout::fixed::result_of::algorithm::type, typename std::decay::type - > shuffle_result( - Container const& cont, - UniformRandomNumberGenerator&& g - ) - { + > + shuffle_result(Container const& cont, UniformRandomNumberGenerator&& g) { return sprout::fixed::detail::shuffle_result_impl( cont, sprout::index_range<0, sprout::container_traits::static_size>::make(), diff --git a/sprout/algorithm/fixed/sort.hpp b/sprout/algorithm/fixed/sort.hpp index 8771eac8..7d6d8390 100644 --- a/sprout/algorithm/fixed/sort.hpp +++ b/sprout/algorithm/fixed/sort.hpp @@ -15,7 +15,8 @@ namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type sort_lr( + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + sort_lr( Container const& cont, typename sprout::container_traits::difference_type start, typename sprout::container_traits::difference_type end, @@ -25,7 +26,8 @@ namespace sprout { typename sprout::container_traits::value_type const& p ); template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type sort_start( + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + sort_start( Container const& cont, typename sprout::container_traits::difference_type start, typename sprout::container_traits::difference_type end, @@ -33,7 +35,8 @@ namespace sprout { ); template - inline SPROUT_CONSTEXPR typename sprout::container_traits::value_type const& sort_select_pivot( + inline SPROUT_CONSTEXPR typename sprout::container_traits::value_type const& + sort_select_pivot( Iterator origin, typename sprout::container_traits::difference_type start, typename sprout::container_traits::difference_type end @@ -42,7 +45,8 @@ namespace sprout { return *sprout::next(origin, (end + start) / 2); } template - inline SPROUT_CONSTEXPR typename sprout::container_traits::difference_type sort_find_l( + inline SPROUT_CONSTEXPR typename sprout::container_traits::difference_type + sort_find_l( Iterator origin, Compare comp, typename sprout::container_traits::difference_type l, @@ -55,7 +59,8 @@ namespace sprout { ; } template - inline SPROUT_CONSTEXPR typename sprout::container_traits::difference_type sort_find_r( + inline SPROUT_CONSTEXPR typename sprout::container_traits::difference_type + sort_find_r( Iterator origin, Compare comp, typename sprout::container_traits::difference_type r, @@ -68,13 +73,15 @@ namespace sprout { ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type swap_lr( + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + swap_lr( Container const& cont, typename sprout::container_traits::difference_type l, typename sprout::container_traits::difference_type r ); template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type sort_part_l( + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + sort_part_l( Container const& cont, typename sprout::container_traits::difference_type start, Compare comp, @@ -87,7 +94,8 @@ namespace sprout { ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type sort_part_r( + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + sort_part_r( Container const& cont, typename sprout::container_traits::difference_type end, Compare comp, @@ -100,7 +108,8 @@ namespace sprout { ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type sort_part_lr( + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + sort_part_lr( Container const& cont, typename sprout::container_traits::difference_type start, typename sprout::container_traits::difference_type end, @@ -117,7 +126,8 @@ namespace sprout { ); } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type sort_next( + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + sort_next( Container const& cont, typename sprout::container_traits::difference_type start, typename sprout::container_traits::difference_type end, @@ -145,7 +155,8 @@ namespace sprout { ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type sort_lr( + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + sort_lr( Container const& cont, typename sprout::container_traits::difference_type start, typename sprout::container_traits::difference_type end, @@ -166,7 +177,8 @@ namespace sprout { ); } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type sort_start( + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + sort_start( Container const& cont, typename sprout::container_traits::difference_type start, typename sprout::container_traits::difference_type end, @@ -187,22 +199,16 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< (sprout::container_traits::static_size <= 1), typename sprout::fixed::result_of::algorithm::type - >::type sort( - Container const& cont, - Compare comp - ) - { + >::type + sort(Container const& cont, Compare comp) { return sprout::deep_copy(cont); } template inline SPROUT_CONSTEXPR typename std::enable_if< (sprout::container_traits::static_size > 1), typename sprout::fixed::result_of::algorithm::type - >::type sort( - Container const& cont, - Compare comp - ) - { + >::type + sort(Container const& cont, Compare comp) { return sprout::fixed::detail::sort_start( cont, sprout::internal_begin_offset(cont), @@ -214,20 +220,16 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< (sprout::container_traits::static_size <= 1), typename sprout::fixed::result_of::algorithm::type - >::type sort( - Container const& cont - ) - { + >::type + sort(Container const& cont) { return sprout::deep_copy(cont); } template inline SPROUT_CONSTEXPR typename std::enable_if< (sprout::container_traits::static_size > 1), typename sprout::fixed::result_of::algorithm::type - >::type sort( - Container const& cont - ) - { + >::type + sort(Container const& cont) { return sprout::fixed::detail::sort_start( cont, sprout::internal_begin_offset(cont), @@ -240,21 +242,13 @@ namespace sprout { // sort // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type sort( - Container const& cont, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + sort(Container const& cont, Compare comp) { return sprout::fixed::detail::sort(cont, comp); } - // - // sort - // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type sort( - Container const& cont - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + sort(Container const& cont) { return sprout::fixed::detail::sort(cont); } } // namespace fixed diff --git a/sprout/algorithm/fixed/sort_heap.hpp b/sprout/algorithm/fixed/sort_heap.hpp index 95973226..a029213b 100644 --- a/sprout/algorithm/fixed/sort_heap.hpp +++ b/sprout/algorithm/fixed/sort_heap.hpp @@ -14,9 +14,9 @@ namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type sort_heap_impl( - Container const& cont, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + sort_heap_impl( + Container const& cont, Compare comp, typename sprout::container_traits::difference_type offset, typename sprout::container_traits::difference_type size ) @@ -41,29 +41,19 @@ namespace sprout { // sort_heap // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type sort_heap( - Container const& cont, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + sort_heap(Container const& cont, Compare comp) { return sprout::fixed::detail::sort_heap_impl( - cont, - comp, + cont, comp, sprout::internal_begin_offset(cont), sprout::size(cont) ); } - // - // sort_heap - // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type sort_heap( - Container const& cont - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + sort_heap(Container const& cont) { return sprout::fixed::detail::sort_heap_impl( - cont, - NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), + cont, NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), sprout::internal_begin_offset(cont), sprout::size(cont) ); diff --git a/sprout/algorithm/fixed/stable_partition.hpp b/sprout/algorithm/fixed/stable_partition.hpp index 31e6c4ea..ae85000f 100644 --- a/sprout/algorithm/fixed/stable_partition.hpp +++ b/sprout/algorithm/fixed/stable_partition.hpp @@ -13,11 +13,8 @@ namespace sprout { // stable_partition // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type stable_partition( - Container const& cont, - Predicate pred - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + stable_partition(Container const& cont, Predicate pred) { return sprout::fixed::stable_partition_copy(sprout::begin(cont), sprout::end(cont), cont, pred); } } // namespace fixed diff --git a/sprout/algorithm/fixed/stable_partition_copy.hpp b/sprout/algorithm/fixed/stable_partition_copy.hpp index 8c2c5c5d..02160ee2 100644 --- a/sprout/algorithm/fixed/stable_partition_copy.hpp +++ b/sprout/algorithm/fixed/stable_partition_copy.hpp @@ -16,11 +16,10 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type stable_partition_copy_impl_1( - BidirectionalIterator first, - BidirectionalIterator last, - Result const& result, - Predicate pred, + >::type + stable_partition_copy_impl_1( + BidirectionalIterator first, BidirectionalIterator last, + Result const& result, Predicate pred, typename sprout::container_traits::size_type size, Args const&... args ) @@ -31,19 +30,24 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type stable_partition_copy_impl_1( - BidirectionalIterator first, - BidirectionalIterator last, - Result const& result, - Predicate pred, + >::type + stable_partition_copy_impl_1( + BidirectionalIterator first, BidirectionalIterator last, + Result const& result, Predicate pred, typename sprout::container_traits::size_type size, Args const&... args ) { return first != last && sizeof...(Args) < size ? !pred(*first) - ? sprout::fixed::detail::stable_partition_copy_impl_1(sprout::next(first), last, result, pred, size, args..., *first) - : sprout::fixed::detail::stable_partition_copy_impl_1(sprout::next(first), last, result, pred, size, args...) + ? sprout::fixed::detail::stable_partition_copy_impl_1( + sprout::next(first), last, result, pred, + size, args..., *first + ) + : sprout::fixed::detail::stable_partition_copy_impl_1( + sprout::next(first), last, result, pred, + size, args... + ) : sprout::detail::container_complate(result, args...) ; } @@ -52,11 +56,10 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type stable_partition_copy_impl( - BidirectionalIterator first, - BidirectionalIterator last, - Result const& result, - Predicate pred, + >::type + stable_partition_copy_impl( + BidirectionalIterator first, BidirectionalIterator last, + Result const& result, Predicate pred, typename sprout::container_traits::size_type size, BidirectionalIterator temp_first, Args const&... args @@ -68,11 +71,10 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type stable_partition_copy_impl( - BidirectionalIterator first, - BidirectionalIterator last, - Result const& result, - Predicate pred, + >::type + stable_partition_copy_impl( + BidirectionalIterator first, BidirectionalIterator last, + Result const& result, Predicate pred, typename sprout::container_traits::size_type size, BidirectionalIterator temp_first, Args const&... args @@ -80,9 +82,18 @@ namespace sprout { { return first != last && sizeof...(Args) < size ? pred(*first) - ? sprout::fixed::detail::stable_partition_copy_impl(sprout::next(first), last, result, pred, size, temp_first, args..., *first) - : sprout::fixed::detail::stable_partition_copy_impl(sprout::next(first), last, result, pred, size, temp_first, args...) - : sprout::fixed::detail::stable_partition_copy_impl_1(temp_first, last, result, pred, size, args...) + ? sprout::fixed::detail::stable_partition_copy_impl( + sprout::next(first), last, result, pred, + size, temp_first, args..., *first + ) + : sprout::fixed::detail::stable_partition_copy_impl( + sprout::next(first), last, result, pred, + size, temp_first, args... + ) + : sprout::fixed::detail::stable_partition_copy_impl_1( + temp_first, last, result, pred, + size, args... + ) ; } } // namespace detail @@ -90,13 +101,8 @@ namespace sprout { // stable_partition_copy // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type stable_partition_copy( - BidirectionalIterator first, - BidirectionalIterator last, - Result const& result, - Predicate pred - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + stable_partition_copy(BidirectionalIterator first, BidirectionalIterator last, Result const& result, Predicate pred) { return sprout::fixed::detail::stable_partition_copy_impl(first, last, result, pred, sprout::size(result), first); } } // namespace fixed diff --git a/sprout/algorithm/fixed/stable_sort.hpp b/sprout/algorithm/fixed/stable_sort.hpp index a2f9a8c2..a1290584 100644 --- a/sprout/algorithm/fixed/stable_sort.hpp +++ b/sprout/algorithm/fixed/stable_sort.hpp @@ -13,9 +13,9 @@ namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type stable_sort_impl_restart( - Container const& cont, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + stable_sort_impl_restart( + Container const& cont, Compare comp, typename sprout::container_traits::size_type size, typename sprout::container_traits::value_type const& prev_value, Args const&... args @@ -24,9 +24,9 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type stable_sort_impl_synonym( - Container const& cont, - Compare comp, + >::type + stable_sort_impl_synonym( + Container const& cont, Compare comp, typename sprout::container_traits::size_type size, typename sprout::container_traits::const_iterator first, typename sprout::container_traits::const_iterator last, @@ -41,9 +41,9 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type stable_sort_impl_synonym( - Container const& cont, - Compare comp, + >::type + stable_sort_impl_synonym( + Container const& cont, Compare comp, typename sprout::container_traits::size_type size, typename sprout::container_traits::const_iterator first, typename sprout::container_traits::const_iterator last, @@ -54,15 +54,24 @@ namespace sprout { { return first != last && count != 0 ? !comp(*first, value) && !comp(value, *first) - ? sprout::fixed::detail::stable_sort_impl_synonym(cont, comp, size, sprout::next(first), last, value, count - 1, args..., *first) - : sprout::fixed::detail::stable_sort_impl_synonym(cont, comp, size, sprout::next(first), last, value, count, args...) - : sprout::fixed::detail::stable_sort_impl_restart(cont, comp, size, value, args...) + ? sprout::fixed::detail::stable_sort_impl_synonym( + cont, comp, + size, sprout::next(first), last, value, count - 1, args..., *first + ) + : sprout::fixed::detail::stable_sort_impl_synonym( + cont, comp, + size, sprout::next(first), last, value, count, args... + ) + : sprout::fixed::detail::stable_sort_impl_restart( + cont, comp, + size, value, args... + ) ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type stable_sort_impl_restart_1( - Container const& cont, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + stable_sort_impl_restart_1( + Container const& cont, Compare comp, typename sprout::container_traits::size_type size, typename sprout::container_traits::const_iterator first, typename sprout::container_traits::const_iterator last, @@ -76,18 +85,33 @@ namespace sprout { return first != last ? comp(prev_value, *first) ? count == 0 || comp(*first, value) - ? sprout::fixed::detail::stable_sort_impl_restart_1(cont, comp, size, sprout::next(first), last, *first, 1, first, prev_value, args...) + ? sprout::fixed::detail::stable_sort_impl_restart_1( + cont, comp, + size, sprout::next(first), last, *first, 1, first, prev_value, args... + ) : comp(value, *first) - ? sprout::fixed::detail::stable_sort_impl_restart_1(cont, comp, size, sprout::next(first), last, value, count, current, prev_value, args...) - : sprout::fixed::detail::stable_sort_impl_restart_1(cont, comp, size, sprout::next(first), last, value, count + 1, current, prev_value, args...) - : sprout::fixed::detail::stable_sort_impl_restart_1(cont, comp, size, sprout::next(first), last, value, count, current, prev_value, args...) - : sprout::fixed::detail::stable_sort_impl_synonym(cont, comp, size, sprout::next(current), last, value, count - 1, args..., value) + ? sprout::fixed::detail::stable_sort_impl_restart_1( + cont, comp, + size, sprout::next(first), last, value, count, current, prev_value, args... + ) + : sprout::fixed::detail::stable_sort_impl_restart_1( + cont, comp, + size, sprout::next(first), last, value, count + 1, current, prev_value, args... + ) + : sprout::fixed::detail::stable_sort_impl_restart_1( + cont, comp, + size, sprout::next(first), last, value, count, current, prev_value, args... + ) + : sprout::fixed::detail::stable_sort_impl_synonym( + cont, comp, + size, sprout::next(current), last, value, count - 1, args..., value + ) ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type stable_sort_impl_restart( - Container const& cont, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + stable_sort_impl_restart( + Container const& cont, Compare comp, typename sprout::container_traits::size_type size, typename sprout::container_traits::value_type const& prev_value, Args const&... args @@ -95,8 +119,7 @@ namespace sprout { { return sizeof...(Args) < size ? sprout::fixed::detail::stable_sort_impl_restart_1( - cont, - comp, + cont, comp, size, sprout::begin(cont), sprout::end(cont), @@ -110,9 +133,9 @@ namespace sprout { ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type stable_sort_impl_1( - Container const& cont, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + stable_sort_impl_1( + Container const& cont, Compare comp, typename sprout::container_traits::size_type size, typename sprout::container_traits::const_iterator first, typename sprout::container_traits::const_iterator last, @@ -123,23 +146,34 @@ namespace sprout { { return first != last ? comp(*first, value) - ? sprout::fixed::detail::stable_sort_impl_1(cont, comp, size, sprout::next(first), last, *first, 1, first) + ? sprout::fixed::detail::stable_sort_impl_1( + cont, comp, + size, sprout::next(first), last, *first, 1, first + ) : comp(value, *first) - ? sprout::fixed::detail::stable_sort_impl_1(cont, comp, size, sprout::next(first), last, value, count, current) - : sprout::fixed::detail::stable_sort_impl_1(cont, comp, size, sprout::next(first), last, value, count + 1, current) - : sprout::fixed::detail::stable_sort_impl_synonym(cont, comp, size, sprout::next(current), last, value, count - 1, value) + ? sprout::fixed::detail::stable_sort_impl_1( + cont, comp, + size, sprout::next(first), last, value, count, current + ) + : sprout::fixed::detail::stable_sort_impl_1( + cont, comp, + size, sprout::next(first), last, value, count + 1, current + ) + : sprout::fixed::detail::stable_sort_impl_synonym( + cont, comp, + size, sprout::next(current), last, value, count - 1, value + ) ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type stable_sort_impl( - Container const& cont, - Compare comp, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + stable_sort_impl( + Container const& cont, Compare comp, typename sprout::container_traits::size_type size ) { return sprout::fixed::detail::stable_sort_impl_1( - cont, - comp, + cont, comp, size, sprout::next(sprout::begin(cont)), sprout::end(cont), @@ -152,25 +186,18 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< (sprout::container_traits::static_size <= 1), typename sprout::fixed::result_of::algorithm::type - >::type stable_sort( - Container const& cont, - Compare comp - ) - { + >::type + stable_sort(Container const& cont, Compare comp) { return sprout::deep_copy(cont); } template inline SPROUT_CONSTEXPR typename std::enable_if< (sprout::container_traits::static_size > 1), typename sprout::fixed::result_of::algorithm::type - >::type stable_sort( - Container const& cont, - Compare comp - ) - { + >::type + stable_sort(Container const& cont, Compare comp) { return sprout::fixed::detail::stable_sort_impl( - cont, - comp, + cont, comp, sprout::size(cont) ); } @@ -178,23 +205,18 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< (sprout::container_traits::static_size <= 1), typename sprout::fixed::result_of::algorithm::type - >::type stable_sort( - Container const& cont - ) - { + >::type + stable_sort(Container const& cont) { return sprout::deep_copy(cont); } template inline SPROUT_CONSTEXPR typename std::enable_if< (sprout::container_traits::static_size > 1), typename sprout::fixed::result_of::algorithm::type - >::type stable_sort( - Container const& cont - ) - { + >::type + stable_sort(Container const& cont) { return sprout::fixed::detail::stable_sort_impl( - cont, - NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), + cont, NS_SSCRISK_CEL_OR_SPROUT::less::value_type>(), sprout::size(cont) ); } @@ -203,21 +225,13 @@ namespace sprout { // stable_sort // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type stable_sort( - Container const& cont, - Compare comp - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + stable_sort(Container const& cont, Compare comp) { return sprout::fixed::detail::stable_sort(cont, comp); } - // - // stable_sort - // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type stable_sort( - Container const& cont - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + stable_sort(Container const& cont) { return sprout::fixed::detail::stable_sort(cont); } } // namespace fixed diff --git a/sprout/algorithm/fixed/swap_element.hpp b/sprout/algorithm/fixed/swap_element.hpp index 6c3e5169..071b200b 100644 --- a/sprout/algorithm/fixed/swap_element.hpp +++ b/sprout/algorithm/fixed/swap_element.hpp @@ -13,7 +13,8 @@ namespace sprout { // swap_element // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type swap_element( + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + swap_element( Container const& cont, typename sprout::container_traits::const_iterator pos1, typename sprout::container_traits::const_iterator pos2 diff --git a/sprout/algorithm/fixed/swap_element_copy.hpp b/sprout/algorithm/fixed/swap_element_copy.hpp index e2ba019e..94ad7d62 100644 --- a/sprout/algorithm/fixed/swap_element_copy.hpp +++ b/sprout/algorithm/fixed/swap_element_copy.hpp @@ -16,12 +16,11 @@ namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type swap_element_copy_impl_ra( - RandomAccessIterator first, - RandomAccessIterator last, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + swap_element_copy_impl_ra( + RandomAccessIterator first, RandomAccessIterator last, Result const& result, - RandomAccessIterator pos1, - RandomAccessIterator pos2, + RandomAccessIterator pos1, RandomAccessIterator pos2, sprout::index_tuple, typename sprout::container_traits::difference_type offset, typename sprout::container_traits::size_type size, @@ -42,69 +41,66 @@ namespace sprout { ); } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type swap_element_copy( - RandomAccessIterator first, - RandomAccessIterator last, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + swap_element_copy( + RandomAccessIterator first, RandomAccessIterator last, Result const& result, - RandomAccessIterator pos1, - RandomAccessIterator pos2, + RandomAccessIterator pos1, RandomAccessIterator pos2, std::random_access_iterator_tag* ) { return sprout::fixed::detail::swap_element_copy_impl_ra( - first, - last, + first, last, result, - pos1, - pos2, + pos1, pos2, sprout::index_range<0, sprout::container_traits::static_size>::make(), sprout::internal_begin_offset(result), sprout::size(result), NS_SSCRISK_CEL_OR_SPROUT::distance(first, last) ); } - template + template inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type swap_element_copy_impl( - InputIterator first, - InputIterator last, + >::type + swap_element_copy_impl( + ForwardIterator first, ForwardIterator last, Result const& result, - InputIterator pos1, - InputIterator pos2, + ForwardIterator pos1, ForwardIterator pos2, typename sprout::container_traits::size_type size, Args const&... args ) { return sprout::remake(result, sprout::size(result), args...); } - template + template inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type swap_element_copy_impl( - InputIterator first, - InputIterator last, + >::type + swap_element_copy_impl( + ForwardIterator first, ForwardIterator last, Result const& result, - InputIterator pos1, - InputIterator pos2, + ForwardIterator pos1, ForwardIterator pos2, typename sprout::container_traits::size_type size, Args const&... args ) { return first != last && sizeof...(Args) < size - ? sprout::fixed::detail::swap_element_copy_impl(sprout::next(first), last, result, pos1, pos2, size, args..., first == pos1 ? *pos2 : first == pos2 ? *pos1 : *first) + ? sprout::fixed::detail::swap_element_copy_impl( + sprout::next(first), last, result, pos1, pos2, + size, args..., first == pos1 ? *pos2 : first == pos2 ? *pos1 : *first + ) : sprout::detail::container_complate(result, args...) ; } - template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type swap_element_copy( - InputIterator first, - InputIterator last, + template + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + swap_element_copy( + ForwardIterator first, ForwardIterator last, Result const& result, - InputIterator pos1, - InputIterator pos2, + ForwardIterator pos1, ForwardIterator pos2, void* ) { @@ -114,16 +110,10 @@ namespace sprout { // // swap_element_copy // - template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type swap_element_copy( - InputIterator first, - InputIterator last, - Result const& result, - InputIterator pos1, - InputIterator pos2 - ) - { - typedef typename std::iterator_traits::iterator_category* category; + template + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + swap_element_copy(ForwardIterator first, ForwardIterator last, Result const& result, ForwardIterator pos1, ForwardIterator pos2) { + typedef typename std::iterator_traits::iterator_category* category; return sprout::fixed::detail::swap_element_copy(first, last, result, pos1, pos2, category()); } } // namespace fixed diff --git a/sprout/algorithm/fixed/transform.hpp b/sprout/algorithm/fixed/transform.hpp index d3851f0d..02d8dece 100644 --- a/sprout/algorithm/fixed/transform.hpp +++ b/sprout/algorithm/fixed/transform.hpp @@ -16,11 +16,10 @@ namespace sprout { namespace fixed { namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type transform_impl_ra( - RandomAccessIterator first, - RandomAccessIterator last, - Result const& result, - UnaryOperation op, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + transform_impl_ra( + RandomAccessIterator first, RandomAccessIterator last, + Result const& result, UnaryOperation op, sprout::index_tuple, typename sprout::container_traits::difference_type offset, typename sprout::container_traits::size_type size, @@ -37,19 +36,16 @@ namespace sprout { ); } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type transform( - RandomAccessIterator first, - RandomAccessIterator last, - Result const& result, - UnaryOperation op, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + transform( + RandomAccessIterator first, RandomAccessIterator last, + Result const& result, UnaryOperation op, std::random_access_iterator_tag* ) { return sprout::fixed::detail::transform_impl_ra( - first, - last, - result, - op, + first, last, + result, op, sprout::index_range<0, sprout::container_traits::static_size>::make(), sprout::internal_begin_offset(result), sprout::size(result), @@ -60,11 +56,10 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type transform_impl( - InputIterator first, - InputIterator last, - Result const& result, - UnaryOperation op, + >::type + transform_impl( + InputIterator first, InputIterator last, + Result const& result, UnaryOperation op, typename sprout::container_traits::size_type size, Args const&... args ) @@ -75,11 +70,10 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type transform_impl( - InputIterator first, - InputIterator last, - Result const& result, - UnaryOperation op, + >::type + transform_impl( + InputIterator first, InputIterator last, + Result const& result, UnaryOperation op, typename sprout::container_traits::size_type size, Args const&... args ) @@ -90,11 +84,10 @@ namespace sprout { ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type transform( - InputIterator first, - InputIterator last, - Result const& result, - UnaryOperation op, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + transform( + InputIterator first, InputIterator last, + Result const& result, UnaryOperation op, void* ) { @@ -105,25 +98,18 @@ namespace sprout { // transform // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type transform( - InputIterator first, - InputIterator last, - Result const& result, - UnaryOperation op - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + transform(InputIterator first, InputIterator last, Result const& result, UnaryOperation op) { typedef typename std::iterator_traits::iterator_category* category; return sprout::fixed::detail::transform(first, last, result, op, category()); } namespace detail { template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type transform_impl_ra( - RandomAccessIterator1 first1, - RandomAccessIterator1 last1, - RandomAccessIterator2 first2, - Result const& result, - BinaryOperation op, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + transform_impl_ra( + RandomAccessIterator1 first1, RandomAccessIterator1 last1, RandomAccessIterator2 first2, + Result const& result, BinaryOperation op, sprout::index_tuple, typename sprout::container_traits::difference_type offset, typename sprout::container_traits::size_type size, @@ -140,21 +126,16 @@ namespace sprout { ); } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type transform( - RandomAccessIterator1 first1, - RandomAccessIterator1 last1, - RandomAccessIterator2 first2, - Result const& result, - BinaryOperation op, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + transform( + RandomAccessIterator1 first1, RandomAccessIterator1 last1, RandomAccessIterator2 first2, + Result const& result, BinaryOperation op, std::random_access_iterator_tag* ) { return sprout::fixed::detail::transform_impl_ra( - first1, - last1, - first2, - result, - op, + first1, last1, first2, + result, op, sprout::index_range<0, sprout::container_traits::static_size>::make(), sprout::internal_begin_offset(result), sprout::size(result), @@ -165,12 +146,10 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type transform_impl( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - Result const& result, - BinaryOperation op, + >::type + transform_impl( + InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, + Result const& result, BinaryOperation op, typename sprout::container_traits::size_type size, Args const&... args ) @@ -181,12 +160,10 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type - >::type transform_impl( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - Result const& result, - BinaryOperation op, + >::type + transform_impl( + InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, + Result const& result, BinaryOperation op, typename sprout::container_traits::size_type size, Args const&... args ) @@ -197,12 +174,10 @@ namespace sprout { ; } template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type transform( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - Result const& result, - BinaryOperation op, + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + transform( + InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, + Result const& result, BinaryOperation op, void* ) { @@ -213,14 +188,8 @@ namespace sprout { // transform // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type transform( - InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - Result const& result, - BinaryOperation op - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + transform(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, Result const& result, BinaryOperation op) { typedef typename std::iterator_traits::iterator_category* category; return sprout::fixed::detail::transform(first1, last1, first2, result, op, category()); } diff --git a/sprout/algorithm/fixed/unfold.hpp b/sprout/algorithm/fixed/unfold.hpp index 871ec2b3..f267e920 100644 --- a/sprout/algorithm/fixed/unfold.hpp +++ b/sprout/algorithm/fixed/unfold.hpp @@ -16,7 +16,8 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args) + 1, typename sprout::fixed::result_of::algorithm::type - >::type unfold_impl_1( + >::type + unfold_impl_1( Container const& cont, Generator const& gen, Next const& next, typename sprout::container_traits::size_type size, Args const&... args diff --git a/sprout/algorithm/fixed/unfold_n.hpp b/sprout/algorithm/fixed/unfold_n.hpp index 6c5ea685..9431eb68 100644 --- a/sprout/algorithm/fixed/unfold_n.hpp +++ b/sprout/algorithm/fixed/unfold_n.hpp @@ -12,13 +12,8 @@ namespace sprout { // unfold_n // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type unfold_n( - Container const& cont, - Size n, - Generator const& gen, - Init const& init - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + unfold_n(Container const& cont, Size n, Generator const& gen, Init const& init) { return sprout::fixed::detail::unfold_impl(cont, gen, init, n); } } // namespace fixed diff --git a/sprout/algorithm/fixed/unique.hpp b/sprout/algorithm/fixed/unique.hpp index dbd550da..19f93a37 100644 --- a/sprout/algorithm/fixed/unique.hpp +++ b/sprout/algorithm/fixed/unique.hpp @@ -12,22 +12,13 @@ namespace sprout { // unique // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type unique( - Container const& cont - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + unique(Container const& cont) { return sprout::fixed::unique_copy(sprout::begin(cont), sprout::end(cont), cont); } - - // - // unique - // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type unique( - Container const& cont, - BinaryPredicate pred - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + unique(Container const& cont, BinaryPredicate pred) { return sprout::fixed::unique_copy(sprout::begin(cont), sprout::end(cont), cont, pred); } } // namespace fixed diff --git a/sprout/algorithm/fixed/unique_copy.hpp b/sprout/algorithm/fixed/unique_copy.hpp index b08af92a..39033daf 100644 --- a/sprout/algorithm/fixed/unique_copy.hpp +++ b/sprout/algorithm/fixed/unique_copy.hpp @@ -16,9 +16,9 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args) + 1, typename sprout::fixed::result_of::algorithm::type - >::type unique_copy_impl( - InputIterator first, - InputIterator last, + >::type + unique_copy_impl( + InputIterator first, InputIterator last, Result const& result, typename sprout::container_traits::size_type size, Head const& head, @@ -31,9 +31,9 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args) + 1, typename sprout::fixed::result_of::algorithm::type - >::type unique_copy_impl( - InputIterator first, - InputIterator last, + >::type + unique_copy_impl( + InputIterator first, InputIterator last, Result const& result, typename sprout::container_traits::size_type size, Head const& head, @@ -52,12 +52,8 @@ namespace sprout { // unique_copy // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type unique_copy( - InputIterator first, - InputIterator last, - Result const& result - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + unique_copy(InputIterator first, InputIterator 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) @@ -69,11 +65,10 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size == sizeof...(Args) + 1, typename sprout::fixed::result_of::algorithm::type - >::type unique_copy_impl( - InputIterator first, - InputIterator last, - Result const& result, - BinaryPredicate pred, + >::type + unique_copy_impl( + InputIterator first, InputIterator last, + Result const& result, BinaryPredicate pred, typename sprout::container_traits::size_type size, Head const& head, Args const&... args @@ -85,11 +80,10 @@ namespace sprout { inline SPROUT_CONSTEXPR typename std::enable_if< sprout::container_traits::static_size != sizeof...(Args) + 1, typename sprout::fixed::result_of::algorithm::type - >::type unique_copy_impl( - InputIterator first, - InputIterator last, - Result const& result, - BinaryPredicate pred, + >::type + unique_copy_impl( + InputIterator first, InputIterator last, + Result const& result, BinaryPredicate pred, typename sprout::container_traits::size_type size, Head const& head, Args const&... args @@ -107,13 +101,8 @@ namespace sprout { // unique_copy // template - inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type unique_copy( - InputIterator first, - InputIterator last, - Result const& result, - BinaryPredicate pred - ) - { + inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm::type + unique_copy(InputIterator first, InputIterator 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) diff --git a/sprout/container/begin.hpp b/sprout/container/begin.hpp index 03cc7555..863ca33c 100644 --- a/sprout/container/begin.hpp +++ b/sprout/container/begin.hpp @@ -4,6 +4,26 @@ #include #include #include +#include + +namespace sprout_adl { + sprout::adl_not_found range_begin(...); +} // namespace sprout_adl + +namespace sprout { + namespace container_detail { + template + inline typename sprout::container_traits::iterator + range_begin(Container& cont) { + return cont.begin(); + } + template + inline SPROUT_CONSTEXPR typename sprout::container_traits::const_iterator + range_begin(Container const& cont) { + return cont.begin(); + } + } // namespace container_detail +} // namespace sprout namespace sprout { // @@ -12,19 +32,22 @@ namespace sprout { template inline typename sprout::container_traits::iterator begin(Container& cont) { - return cont.begin(); + using sprout::container_detail::range_begin; + using sprout_adl::range_begin; + return range_begin(cont); + } + template + inline SPROUT_CONSTEXPR typename sprout::container_traits::const_iterator + begin(Container const& cont) { + using sprout::container_detail::range_begin; + using sprout_adl::range_begin; + return range_begin(cont); } template inline typename sprout::container_traits::iterator begin(T (& arr)[N]) { return arr; } - - template - inline SPROUT_CONSTEXPR typename sprout::container_traits::const_iterator - begin(Container const& cont) { - return cont.begin(); - } template inline SPROUT_CONSTEXPR typename sprout::container_traits::const_iterator begin(T const (& arr)[N]) { @@ -37,7 +60,9 @@ namespace sprout { template inline SPROUT_CONSTEXPR typename sprout::container_traits::const_iterator cbegin(Container const& cont) { - return cont.begin(); + using sprout::container_detail::range_begin; + using sprout_adl::range_begin; + return range_begin(cont); } template inline SPROUT_CONSTEXPR typename sprout::container_traits::const_iterator diff --git a/sprout/container/container_traits.hpp b/sprout/container/container_traits.hpp index 5a24878d..c682b94c 100644 --- a/sprout/container/container_traits.hpp +++ b/sprout/container/container_traits.hpp @@ -14,6 +14,51 @@ namespace sprout { struct container_traits; namespace detail { + // + // is_array_like + // + template + struct is_array_like + : public std::false_type + {}; + template class Array, typename T, std::size_t N> + struct is_array_like > + : public std::true_type + {}; + template + struct is_array_like + : public sprout::detail::is_array_like + {}; + template + struct is_array_like + : public sprout::detail::is_array_like + {}; + template + struct is_array_like + : public sprout::detail::is_array_like + {}; + // + // array_like_static_size + // + template + struct array_like_static_size {}; + template class Array, typename T, std::size_t N> + struct array_like_static_size > + : public std::integral_constant + {}; + template + struct array_like_static_size + : public sprout::detail::array_like_static_size + {}; + template + struct array_like_static_size + : public sprout::detail::array_like_static_size + {}; + template + struct array_like_static_size + : public sprout::detail::array_like_static_size + {}; + // // has_value_type // has_iterator @@ -97,6 +142,17 @@ namespace sprout { || sprout::detail::has_container_nosy_iterator::value > {}; + // + // has_container_nosy_static_size + // + template + struct has_container_nosy_static_size + : public std::integral_constant< + bool, + sprout::detail::has_static_size::value + || sprout::detail::is_array_like::value + > + {}; // // container_nosy_iterator @@ -346,27 +402,51 @@ namespace sprout { // // container_nosy_static_size // - template - struct container_nosy_static_size + template + struct container_nosy_static_size_impl {}; + template + struct container_nosy_static_size_impl : public sprout::detail::inherit_if_static_size {}; + template + struct container_nosy_static_size_impl + : public sprout::detail::inherit_if_static_size + { + public: + SPROUT_STATIC_CONSTEXPR typename sprout::detail::array_like_static_size::value_type static_size + = sprout::detail::array_like_static_size::value + ; + }; + template + SPROUT_CONSTEXPR_OR_CONST typename sprout::detail::array_like_static_size::value_type + sprout::detail::container_nosy_static_size_impl::static_size + ; + template + struct container_nosy_static_size + : public sprout::detail::container_nosy_static_size_impl< + Container, + sprout::detail::has_static_size::value, + sprout::detail::is_array_like::value + > + {}; + // // container_nosy_fixed_size // - template + template struct container_nosy_fixed_size_impl {}; template struct container_nosy_fixed_size_impl { public: - static SPROUT_CONSTEXPR decltype(Container::static_size) fixed_size() { - return Container::static_size; + static SPROUT_CONSTEXPR decltype(sprout::detail::container_nosy_static_size::static_size) fixed_size() { + return sprout::detail::container_nosy_static_size::static_size; } }; template struct container_nosy_fixed_size : public sprout::detail::container_nosy_fixed_size_impl< Container, - sprout::detail::has_static_size::value + sprout::detail::has_container_nosy_static_size::value > {}; diff --git a/sprout/container/end.hpp b/sprout/container/end.hpp index 2400399a..735b2f1f 100644 --- a/sprout/container/end.hpp +++ b/sprout/container/end.hpp @@ -4,6 +4,26 @@ #include #include #include +#include + +namespace sprout_adl { + sprout::adl_not_found range_end(...); +} // namespace sprout_adl + +namespace sprout { + namespace container_detail { + template + inline typename sprout::container_traits::iterator + range_end(Container& cont) { + return cont.end(); + } + template + inline SPROUT_CONSTEXPR typename sprout::container_traits::const_iterator + range_end(Container const& cont) { + return cont.end(); + } + } // namespace container_detail +} // namespace sprout namespace sprout { // @@ -12,19 +32,22 @@ namespace sprout { template inline typename sprout::container_traits::iterator end(Container& cont) { - return cont.end(); + using sprout::container_detail::range_end; + using sprout_adl::range_end; + return range_end(cont); + } + template + inline SPROUT_CONSTEXPR typename sprout::container_traits::const_iterator + end(Container const& cont) { + using sprout::container_detail::range_end; + using sprout_adl::range_end; + return range_end(cont); } template inline typename sprout::container_traits::iterator end(T (& arr)[N]) { return arr + N; } - - template - inline SPROUT_CONSTEXPR typename sprout::container_traits::const_iterator - end(Container const& cont) { - return cont.end(); - } template inline SPROUT_CONSTEXPR typename sprout::container_traits::const_iterator end(T const (& arr)[N]) { @@ -37,7 +60,9 @@ namespace sprout { template inline SPROUT_CONSTEXPR typename sprout::container_traits::const_iterator cend(Container const& cont) { - return cont.end(); + using sprout::container_detail::range_end; + using sprout_adl::range_end; + return range_end(cont); } template inline SPROUT_CONSTEXPR typename sprout::container_traits::const_iterator diff --git a/sprout/generator/generated_value.hpp b/sprout/generator/generated_value.hpp index 446fbc06..70649588 100644 --- a/sprout/generator/generated_value.hpp +++ b/sprout/generator/generated_value.hpp @@ -6,13 +6,15 @@ #include #include #include +#include + +namespace sprout_adl { + sprout::adl_not_found generated_value(...); +} // namespace sprout_adl namespace sprout_generator_detail { using sprout::tuples::get; - - struct not_found_adl_generated_value {}; - - sprout_generator_detail::not_found_adl_generated_value generated_value(...); + using sprout_adl::generated_value; template struct has_mem_generated_value_test { @@ -35,7 +37,7 @@ namespace sprout_generator_detail { template< typename U = T, typename sprout::enabler_if< - !std::is_same())), sprout_generator_detail::not_found_adl_generated_value>::value + !std::is_same())), sprout::adl_not_found>::value >::type = sprout::enabler > static std::true_type test(int); diff --git a/sprout/generator/next_generator.hpp b/sprout/generator/next_generator.hpp index d5f8a13d..3425aa2b 100644 --- a/sprout/generator/next_generator.hpp +++ b/sprout/generator/next_generator.hpp @@ -6,13 +6,15 @@ #include #include #include +#include + +namespace sprout_adl { + sprout::adl_not_found next_generator(...); +} // namespace sprout_adl namespace sprout_generator_detail { using sprout::tuples::get; - - struct not_found_adl_next_generator {}; - - sprout_generator_detail::not_found_adl_next_generator next_generator(...); + using sprout_adl::next_generator; template struct has_mem_next_generator_test { @@ -35,7 +37,7 @@ namespace sprout_generator_detail { template< typename U = T, typename sprout::enabler_if< - !std::is_same())), sprout_generator_detail::not_found_adl_next_generator>::value + !std::is_same())), sprout::adl_not_found>::value >::type = sprout::enabler > static std::true_type test(int); diff --git a/sprout/iterator/distance.hpp b/sprout/iterator/distance.hpp index fb737027..145790aa 100644 --- a/sprout/iterator/distance.hpp +++ b/sprout/iterator/distance.hpp @@ -4,6 +4,11 @@ #include #include #include +#include + +namespace sprout_adl { + sprout::adl_not_found iterator_distance(...); +} // namespace sprout_adl namespace sprout { namespace iterator_detail { @@ -24,6 +29,7 @@ namespace sprout_iterator_detail { inline SPROUT_CONSTEXPR typename std::iterator_traits::difference_type distance(InputIterator first, InputIterator last) { using sprout::iterator_detail::iterator_distance; + using sprout_adl::iterator_distance; return iterator_distance(first, last); } } // namespace sprout_iterator_detail diff --git a/sprout/iterator/next.hpp b/sprout/iterator/next.hpp index 41780c74..39c4a6f5 100644 --- a/sprout/iterator/next.hpp +++ b/sprout/iterator/next.hpp @@ -4,6 +4,11 @@ #include #include #include +#include + +namespace sprout_adl { + sprout::adl_not_found iterator_next(...); +} // namespace sprout_adl namespace sprout { namespace iterator_detail { @@ -69,12 +74,14 @@ namespace sprout_iterator_detail { inline SPROUT_CONSTEXPR ForwardIterator next(ForwardIterator const& it) { using sprout::iterator_detail::iterator_next; + using sprout_adl::iterator_next; return iterator_next(it); } template inline SPROUT_CONSTEXPR ForwardIterator next(ForwardIterator const& it, typename std::iterator_traits::difference_type n) { using sprout::iterator_detail::iterator_next; + using sprout_adl::iterator_next; return iterator_next(it, n); } } // namespace sprout_iterator_detail diff --git a/sprout/iterator/prev.hpp b/sprout/iterator/prev.hpp index 679a9bf4..a3c5221d 100644 --- a/sprout/iterator/prev.hpp +++ b/sprout/iterator/prev.hpp @@ -4,6 +4,11 @@ #include #include #include +#include + +namespace sprout_adl { + sprout::adl_not_found iterator_prev(...); +} // namespace sprout_adl namespace sprout { namespace iterator_detail { @@ -69,12 +74,14 @@ namespace sprout_iterator_detail { inline SPROUT_CONSTEXPR BidirectionalIterator prev(BidirectionalIterator const& it) { using sprout::iterator_detail::iterator_prev; + using sprout_adl::iterator_prev; return iterator_prev(it); } template inline SPROUT_CONSTEXPR BidirectionalIterator prev(BidirectionalIterator const& it, typename std::iterator_traits::difference_type n) { using sprout::iterator_detail::iterator_prev; + using sprout_adl::iterator_prev; return iterator_prev(it, n); } } // namespace sprout_iterator_detail