From ad60c8c53081dd8a68af8827f065d5996c0d774b Mon Sep 17 00:00:00 2001 From: bolero-MURAKAMI Date: Sat, 31 Mar 2012 16:24:13 +0900 Subject: [PATCH] =?UTF-8?q?[desuructive=20changes]=20container=20traits=20?= =?UTF-8?q?new=20interface=20[=E7=A0=B4=E5=A3=8A=E7=9A=84=E5=A4=89?= =?UTF-8?q?=E6=9B=B4]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README | 2 +- sprout/adapt/sscrisk/cel/array.hpp | 65 ++- sprout/algorithm/fit/bogo_sort.hpp | 16 +- sprout/algorithm/fit/bogo_sort_result.hpp | 16 +- sprout/algorithm/fit/copy.hpp | 10 +- sprout/algorithm/fit/copy_backward.hpp | 10 +- sprout/algorithm/fit/copy_if.hpp | 10 +- sprout/algorithm/fit/copy_n.hpp | 10 +- sprout/algorithm/fit/fill.hpp | 10 +- sprout/algorithm/fit/fill_n.hpp | 10 +- sprout/algorithm/fit/generate.hpp | 10 +- sprout/algorithm/fit/generate_n.hpp | 10 +- sprout/algorithm/fit/inplace_merge.hpp | 24 +- sprout/algorithm/fit/make_heap.hpp | 16 +- sprout/algorithm/fit/make_partial_heap.hpp | 24 +- sprout/algorithm/fit/merge.hpp | 16 +- sprout/algorithm/fit/nth_element.hpp | 24 +- sprout/algorithm/fit/partial_sort.hpp | 24 +- sprout/algorithm/fit/partition.hpp | 10 +- sprout/algorithm/fit/partition_copy.hpp | 10 +- sprout/algorithm/fit/pop_heap.hpp | 16 +- sprout/algorithm/fit/push_heap.hpp | 16 +- sprout/algorithm/fit/remove.hpp | 10 +- sprout/algorithm/fit/remove_copy.hpp | 10 +- sprout/algorithm/fit/remove_copy_if.hpp | 10 +- sprout/algorithm/fit/remove_if.hpp | 10 +- sprout/algorithm/fit/replace.hpp | 10 +- sprout/algorithm/fit/replace_copy.hpp | 10 +- sprout/algorithm/fit/replace_copy_if.hpp | 10 +- sprout/algorithm/fit/replace_if.hpp | 10 +- sprout/algorithm/fit/result_of.hpp | 12 +- sprout/algorithm/fit/reverse.hpp | 10 +- sprout/algorithm/fit/reverse_copy.hpp | 10 +- sprout/algorithm/fit/rotate.hpp | 14 +- sprout/algorithm/fit/rotate_copy.hpp | 10 +- sprout/algorithm/fit/set_difference.hpp | 16 +- sprout/algorithm/fit/set_intersection.hpp | 16 +- .../fit/set_symmetric_difference.hpp | 16 +- sprout/algorithm/fit/set_union.hpp | 16 +- sprout/algorithm/fit/shuffle.hpp | 10 +- sprout/algorithm/fit/shuffle_result.hpp | 12 +- sprout/algorithm/fit/sort.hpp | 16 +- sprout/algorithm/fit/sort_heap.hpp | 16 +- sprout/algorithm/fit/stable_partition.hpp | 10 +- .../algorithm/fit/stable_partition_copy.hpp | 10 +- sprout/algorithm/fit/stable_sort.hpp | 16 +- sprout/algorithm/fit/swap_element.hpp | 18 +- sprout/algorithm/fit/swap_element_copy.hpp | 10 +- sprout/algorithm/fit/transform.hpp | 16 +- sprout/algorithm/fit/unique.hpp | 16 +- sprout/algorithm/fit/unique_copy.hpp | 16 +- sprout/algorithm/fixed/bogo_sort.hpp | 8 +- sprout/algorithm/fixed/bogo_sort_result.hpp | 8 +- sprout/algorithm/fixed/copy.hpp | 28 +- sprout/algorithm/fixed/copy_backward.hpp | 28 +- sprout/algorithm/fixed/copy_if.hpp | 14 +- sprout/algorithm/fixed/copy_n.hpp | 14 +- sprout/algorithm/fixed/fill.hpp | 16 +- sprout/algorithm/fixed/fill_n.hpp | 8 +- sprout/algorithm/fixed/generate.hpp | 38 +- sprout/algorithm/fixed/generate_n.hpp | 2 +- sprout/algorithm/fixed/inplace_merge.hpp | 8 +- sprout/algorithm/fixed/make_heap.hpp | 68 +-- sprout/algorithm/fixed/make_partial_heap.hpp | 36 +- sprout/algorithm/fixed/merge.hpp | 16 +- sprout/algorithm/fixed/nth_element.hpp | 28 +- sprout/algorithm/fixed/partial_sort.hpp | 20 +- sprout/algorithm/fixed/partition.hpp | 4 +- sprout/algorithm/fixed/partition_copy.hpp | 14 +- sprout/algorithm/fixed/pop_heap.hpp | 40 +- sprout/algorithm/fixed/push_heap.hpp | 22 +- sprout/algorithm/fixed/remove.hpp | 4 +- sprout/algorithm/fixed/remove_copy.hpp | 14 +- sprout/algorithm/fixed/remove_copy_if.hpp | 14 +- sprout/algorithm/fixed/remove_if.hpp | 4 +- sprout/algorithm/fixed/replace.hpp | 4 +- sprout/algorithm/fixed/replace_copy.hpp | 28 +- sprout/algorithm/fixed/replace_copy_if.hpp | 28 +- sprout/algorithm/fixed/replace_if.hpp | 4 +- sprout/algorithm/fixed/result_of.hpp | 4 +- sprout/algorithm/fixed/reverse.hpp | 4 +- sprout/algorithm/fixed/reverse_copy.hpp | 28 +- sprout/algorithm/fixed/rotate.hpp | 6 +- sprout/algorithm/fixed/rotate_copy.hpp | 38 +- sprout/algorithm/fixed/set_difference.hpp | 16 +- sprout/algorithm/fixed/set_intersection.hpp | 16 +- .../fixed/set_symmetric_difference.hpp | 16 +- sprout/algorithm/fixed/set_union.hpp | 16 +- sprout/algorithm/fixed/shuffle.hpp | 22 +- sprout/algorithm/fixed/shuffle_result.hpp | 22 +- sprout/algorithm/fixed/sort.hpp | 116 +++--- sprout/algorithm/fixed/sort_heap.hpp | 16 +- sprout/algorithm/fixed/stable_partition.hpp | 4 +- .../algorithm/fixed/stable_partition_copy.hpp | 24 +- sprout/algorithm/fixed/stable_sort.hpp | 80 ++-- sprout/algorithm/fixed/swap_element.hpp | 8 +- sprout/algorithm/fixed/swap_element_copy.hpp | 28 +- sprout/algorithm/fixed/transform.hpp | 52 +-- sprout/algorithm/fixed/unique.hpp | 4 +- sprout/algorithm/fixed/unique_copy.hpp | 24 +- sprout/algorithm/string/join.hpp | 36 +- sprout/algorithm/string/join2.hpp | 34 +- sprout/array.hpp | 28 +- sprout/checksum/sha1.hpp | 12 +- sprout/container.hpp | 9 + sprout/container/begin.hpp | 43 ++ sprout/container/const_iterator.hpp | 20 + sprout/container/const_pointer.hpp | 20 + sprout/container/const_reference.hpp | 20 + .../container/container_construct_traits.hpp | 53 +++ sprout/container/container_traits.hpp | 98 +++++ .../container/container_transform_traits.hpp | 68 +++ sprout/container/copied_type.hpp | 20 + sprout/container/deep_copy.hpp | 22 + sprout/container/difference_type.hpp | 20 + sprout/container/empty.hpp | 17 + sprout/container/end.hpp | 43 ++ sprout/container/fixed_size.hpp | 17 + sprout/container/functions.hpp | 22 + sprout/container/get_internal.hpp | 21 + sprout/container/internal.hpp | 25 ++ sprout/container/internal_begin.hpp | 46 +++ sprout/container/internal_begin_offset.hpp | 20 + .../internal_begin_offset_backward.hpp | 20 + sprout/container/internal_deep_copy.hpp | 29 ++ sprout/container/internal_end.hpp | 46 +++ sprout/container/internal_end_offset.hpp | 20 + .../internal_end_offset_backward.hpp | 20 + sprout/container/iterator.hpp | 20 + sprout/container/make.hpp | 18 + sprout/container/metafunctions.hpp | 19 + sprout/container/pointer.hpp | 20 + sprout/container/rebind_size.hpp | 20 + sprout/container/reference.hpp | 20 + sprout/container/remake.hpp | 29 ++ sprout/container/size.hpp | 20 + sprout/container/size_type.hpp | 20 + sprout/container/static_size.hpp | 23 ++ sprout/container/sub_container_traits.hpp | 31 ++ sprout/container/traits.hpp | 10 + sprout/container/value_type.hpp | 20 + sprout/darkroom/colors/rgb.hpp | 8 +- sprout/darkroom/coords/vector.hpp | 12 +- sprout/darkroom/lights/point_light.hpp | 2 +- sprout/darkroom/objects/sphere.hpp | 4 +- sprout/darkroom/pixels/generate.hpp | 66 +-- sprout/darkroom/renderers/whitted_style.hpp | 4 +- sprout/detail/container_complate.hpp | 32 +- sprout/detail/container_complate_backward.hpp | 32 +- sprout/fixed_container.hpp | 9 - sprout/fixed_container/begin.hpp | 45 -- sprout/fixed_container/clone.hpp | 22 - sprout/fixed_container/const_iterator.hpp | 18 - sprout/fixed_container/const_pointer.hpp | 18 - sprout/fixed_container/const_reference.hpp | 18 - sprout/fixed_container/difference_type.hpp | 18 - sprout/fixed_container/empty.hpp | 18 - sprout/fixed_container/end.hpp | 45 -- sprout/fixed_container/fixed_begin.hpp | 37 -- sprout/fixed_container/fixed_begin_offset.hpp | 20 - .../fixed_begin_offset_backward.hpp | 20 - .../fixed_container/fixed_container_type.hpp | 18 - sprout/fixed_container/fixed_end.hpp | 37 -- sprout/fixed_container/fixed_end_offset.hpp | 20 - .../fixed_end_offset_backward.hpp | 20 - sprout/fixed_container/fixed_size.hpp | 22 - sprout/fixed_container/functions.hpp | 20 - sprout/fixed_container/get_fixed.hpp | 37 -- sprout/fixed_container/iterator.hpp | 23 -- sprout/fixed_container/make_clone.hpp | 22 - sprout/fixed_container/metafunctions.hpp | 21 - sprout/fixed_container/mutable_iterator.hpp | 18 - sprout/fixed_container/mutable_pointer.hpp | 18 - sprout/fixed_container/mutable_reference.hpp | 18 - sprout/fixed_container/pointer.hpp | 23 -- .../rebind_fixed_size_eval.hpp | 17 - sprout/fixed_container/reference.hpp | 23 -- sprout/fixed_container/remake_clone.hpp | 31 -- sprout/fixed_container/size.hpp | 20 - sprout/fixed_container/size_type.hpp | 18 - sprout/fixed_container/traits.hpp | 177 -------- sprout/fixed_container/value_type.hpp | 18 - sprout/functional/dft/fit/dft.hpp | 10 +- sprout/functional/dft/fit/idft.hpp | 10 +- sprout/functional/dft/fixed/dft.hpp | 18 +- sprout/functional/dft/fixed/idft.hpp | 18 +- sprout/functional/fft/fit/bitrev_table.hpp | 10 +- sprout/functional/fft/fixed/bitrev_table.hpp | 18 +- sprout/iterator/index_iterator.hpp | 16 +- sprout/numeric/fit/adjacent_difference.hpp | 16 +- sprout/numeric/fit/iota.hpp | 10 +- sprout/numeric/fit/partial_sum.hpp | 16 +- sprout/numeric/fixed/adjacent_difference.hpp | 52 +-- sprout/numeric/fixed/iota.hpp | 16 +- sprout/numeric/fixed/partial_sum.hpp | 52 +-- sprout/operation/fit/append.hpp | 22 +- sprout/operation/fit/append_back.hpp | 12 +- sprout/operation/fit/append_front.hpp | 12 +- sprout/operation/fit/erase.hpp | 22 +- sprout/operation/fit/erase_n.hpp | 22 +- sprout/operation/fit/insert.hpp | 22 +- sprout/operation/fit/insert_n.hpp | 22 +- sprout/operation/fit/pop_back.hpp | 12 +- sprout/operation/fit/pop_back_n.hpp | 12 +- sprout/operation/fit/pop_front.hpp | 12 +- sprout/operation/fit/pop_front_n.hpp | 12 +- sprout/operation/fit/push_back.hpp | 12 +- sprout/operation/fit/push_back_n.hpp | 12 +- sprout/operation/fit/push_front.hpp | 12 +- sprout/operation/fit/push_front_n.hpp | 12 +- sprout/operation/fit/realign.hpp | 10 +- sprout/operation/fit/realign_to.hpp | 10 +- sprout/operation/fit/resize.hpp | 14 +- sprout/operation/fit/resize_backward.hpp | 14 +- sprout/operation/fit/set.hpp | 22 +- sprout/operation/fixed/append.hpp | 36 +- sprout/operation/fixed/append_back.hpp | 8 +- sprout/operation/fixed/append_front.hpp | 8 +- sprout/operation/fixed/erase.hpp | 36 +- sprout/operation/fixed/erase_n.hpp | 36 +- sprout/operation/fixed/insert.hpp | 36 +- sprout/operation/fixed/insert_n.hpp | 36 +- sprout/operation/fixed/pop_back.hpp | 8 +- sprout/operation/fixed/pop_back_n.hpp | 8 +- sprout/operation/fixed/pop_front.hpp | 8 +- sprout/operation/fixed/pop_front_n.hpp | 8 +- sprout/operation/fixed/push_back.hpp | 8 +- sprout/operation/fixed/push_back_n.hpp | 8 +- sprout/operation/fixed/push_front.hpp | 8 +- sprout/operation/fixed/push_front_n.hpp | 8 +- sprout/operation/fixed/realign.hpp | 20 +- sprout/operation/fixed/realign_to.hpp | 10 +- sprout/operation/fixed/resize.hpp | 22 +- sprout/operation/fixed/resize_backward.hpp | 30 +- sprout/operation/fixed/set.hpp | 24 +- sprout/pit.hpp | 135 ++---- sprout/range/algorithm/fit/copy.hpp | 4 +- sprout/range/algorithm/fit/copy_backward.hpp | 4 +- sprout/range/algorithm/fit/copy_if.hpp | 4 +- sprout/range/algorithm/fit/merge.hpp | 4 +- sprout/range/algorithm/fit/partition_copy.hpp | 4 +- sprout/range/algorithm/fit/remove_copy.hpp | 4 +- sprout/range/algorithm/fit/remove_copy_if.hpp | 4 +- sprout/range/algorithm/fit/replace_copy.hpp | 4 +- .../range/algorithm/fit/replace_copy_if.hpp | 4 +- sprout/range/algorithm/fit/reverse_copy.hpp | 4 +- sprout/range/algorithm/fit/rotate_copy.hpp | 6 +- sprout/range/algorithm/fit/set_difference.hpp | 4 +- .../range/algorithm/fit/set_intersection.hpp | 4 +- .../fit/set_symmetric_difference.hpp | 4 +- sprout/range/algorithm/fit/set_union.hpp | 4 +- .../algorithm/fit/stable_partition_copy.hpp | 4 +- .../range/algorithm/fit/swap_element_copy.hpp | 8 +- sprout/range/algorithm/fit/transform.hpp | 4 +- sprout/range/algorithm/fit/unique_copy.hpp | 4 +- sprout/range/algorithm/fixed/copy.hpp | 4 +- .../range/algorithm/fixed/copy_backward.hpp | 4 +- sprout/range/algorithm/fixed/copy_if.hpp | 4 +- sprout/range/algorithm/fixed/merge.hpp | 4 +- .../range/algorithm/fixed/partition_copy.hpp | 4 +- sprout/range/algorithm/fixed/remove_copy.hpp | 4 +- .../range/algorithm/fixed/remove_copy_if.hpp | 4 +- sprout/range/algorithm/fixed/replace_copy.hpp | 4 +- .../range/algorithm/fixed/replace_copy_if.hpp | 4 +- sprout/range/algorithm/fixed/reverse_copy.hpp | 4 +- sprout/range/algorithm/fixed/rotate_copy.hpp | 6 +- .../range/algorithm/fixed/set_difference.hpp | 4 +- .../algorithm/fixed/set_intersection.hpp | 4 +- .../fixed/set_symmetric_difference.hpp | 4 +- sprout/range/algorithm/fixed/set_union.hpp | 4 +- .../algorithm/fixed/stable_partition_copy.hpp | 4 +- .../algorithm/fixed/swap_element_copy.hpp | 8 +- sprout/range/algorithm/fixed/transform.hpp | 4 +- sprout/range/algorithm/fixed/unique_copy.hpp | 4 +- .../range/numeric/fit/adjacent_difference.hpp | 4 +- sprout/range/numeric/fit/partial_sum.hpp | 4 +- .../numeric/fixed/adjacent_difference.hpp | 4 +- sprout/range/numeric/fixed/partial_sum.hpp | 4 +- sprout/string.hpp | 100 ++--- sprout/sub_array.hpp | 391 ++++++++---------- sprout/tuple/algorithm/copy.hpp | 4 +- sprout/tuple/clone.hpp | 24 -- sprout/tuple/deep_copy.hpp | 24 ++ sprout/tuple/functions.hpp | 6 +- sprout/tuple/make.hpp | 23 ++ sprout/tuple/make_clone.hpp | 24 -- sprout/tuple/operation/append_back.hpp | 2 +- sprout/tuple/operation/append_front.hpp | 2 +- sprout/tuple/operation/push_back.hpp | 2 +- sprout/tuple/operation/push_front.hpp | 2 +- sprout/tuple/pit.hpp | 10 +- sprout/tuple/remake.hpp | 28 ++ sprout/tuple/remake_clone.hpp | 31 -- sprout/tuple/sub_array.hpp | 20 +- sprout/tuple/traits.hpp | 96 ++--- sprout/type/string/to_string.hpp | 8 +- sprout/uuid/uuid.hpp | 1 - sprout/variant/variant.hpp | 2 +- sprout/weed/attr_cnv/bitwise_or.hpp | 14 +- sprout/weed/attr_cnv/result_of/bitwise_or.hpp | 8 +- sprout/weed/attr_cnv/shift_left.hpp | 2 +- sprout/weed/attr_cnv/times.hpp | 6 +- .../context/parse_context/terminal/string.hpp | 6 +- sprout/weed/parser/string/string.hpp | 6 +- testspr/print.hpp | 2 +- testspr/sprout/algorithm/bogo_sort.hpp | 10 +- testspr/sprout/algorithm/bogo_sort_result.hpp | 10 +- testspr/sprout/algorithm/copy.hpp | 6 +- testspr/sprout/algorithm/copy_backward.hpp | 6 +- testspr/sprout/algorithm/copy_if.hpp | 6 +- testspr/sprout/algorithm/copy_n.hpp | 6 +- testspr/sprout/algorithm/fill.hpp | 6 +- testspr/sprout/algorithm/fill_n.hpp | 6 +- testspr/sprout/algorithm/generate.hpp | 6 +- testspr/sprout/algorithm/generate_n.hpp | 6 +- testspr/sprout/algorithm/inplace_merge.hpp | 10 +- testspr/sprout/algorithm/make_heap.hpp | 10 +- .../sprout/algorithm/make_partial_heap.hpp | 10 +- testspr/sprout/algorithm/merge.hpp | 10 +- testspr/sprout/algorithm/nth_element.hpp | 10 +- testspr/sprout/algorithm/partial_sort.hpp | 10 +- testspr/sprout/algorithm/partition.hpp | 6 +- testspr/sprout/algorithm/partition_copy.hpp | 6 +- testspr/sprout/algorithm/pop_heap.hpp | 6 +- testspr/sprout/algorithm/push_heap.hpp | 10 +- testspr/sprout/algorithm/remove.hpp | 6 +- testspr/sprout/algorithm/remove_copy.hpp | 6 +- testspr/sprout/algorithm/remove_copy_if.hpp | 6 +- testspr/sprout/algorithm/remove_if.hpp | 6 +- testspr/sprout/algorithm/replace.hpp | 6 +- testspr/sprout/algorithm/replace_copy.hpp | 6 +- testspr/sprout/algorithm/replace_copy_if.hpp | 6 +- testspr/sprout/algorithm/replace_if.hpp | 6 +- testspr/sprout/algorithm/reverse.hpp | 6 +- testspr/sprout/algorithm/reverse_copy.hpp | 6 +- testspr/sprout/algorithm/rotate.hpp | 6 +- testspr/sprout/algorithm/rotate_copy.hpp | 6 +- testspr/sprout/algorithm/set_difference.hpp | 10 +- testspr/sprout/algorithm/set_intersection.hpp | 10 +- .../algorithm/set_symmetric_difference.hpp | 10 +- testspr/sprout/algorithm/set_union.hpp | 10 +- testspr/sprout/algorithm/shuffle.hpp | 6 +- testspr/sprout/algorithm/shuffle_result.hpp | 6 +- testspr/sprout/algorithm/sort.hpp | 10 +- testspr/sprout/algorithm/sort_heap.hpp | 10 +- testspr/sprout/algorithm/stable_partition.hpp | 6 +- .../algorithm/stable_partition_copy.hpp | 6 +- testspr/sprout/algorithm/stable_sort.hpp | 10 +- testspr/sprout/algorithm/swap_element.hpp | 6 +- .../sprout/algorithm/swap_element_copy.hpp | 6 +- testspr/sprout/algorithm/transform.hpp | 10 +- testspr/sprout/algorithm/unique.hpp | 10 +- testspr/sprout/algorithm/unique_copy.hpp | 10 +- testspr/sprout/array.hpp | 2 +- testspr/sprout/string.hpp | 2 +- testspr/tools.hpp | 2 +- 356 files changed, 3183 insertions(+), 3251 deletions(-) create mode 100644 sprout/container.hpp create mode 100644 sprout/container/begin.hpp create mode 100644 sprout/container/const_iterator.hpp create mode 100644 sprout/container/const_pointer.hpp create mode 100644 sprout/container/const_reference.hpp create mode 100644 sprout/container/container_construct_traits.hpp create mode 100644 sprout/container/container_traits.hpp create mode 100644 sprout/container/container_transform_traits.hpp create mode 100644 sprout/container/copied_type.hpp create mode 100644 sprout/container/deep_copy.hpp create mode 100644 sprout/container/difference_type.hpp create mode 100644 sprout/container/empty.hpp create mode 100644 sprout/container/end.hpp create mode 100644 sprout/container/fixed_size.hpp create mode 100644 sprout/container/functions.hpp create mode 100644 sprout/container/get_internal.hpp create mode 100644 sprout/container/internal.hpp create mode 100644 sprout/container/internal_begin.hpp create mode 100644 sprout/container/internal_begin_offset.hpp create mode 100644 sprout/container/internal_begin_offset_backward.hpp create mode 100644 sprout/container/internal_deep_copy.hpp create mode 100644 sprout/container/internal_end.hpp create mode 100644 sprout/container/internal_end_offset.hpp create mode 100644 sprout/container/internal_end_offset_backward.hpp create mode 100644 sprout/container/iterator.hpp create mode 100644 sprout/container/make.hpp create mode 100644 sprout/container/metafunctions.hpp create mode 100644 sprout/container/pointer.hpp create mode 100644 sprout/container/rebind_size.hpp create mode 100644 sprout/container/reference.hpp create mode 100644 sprout/container/remake.hpp create mode 100644 sprout/container/size.hpp create mode 100644 sprout/container/size_type.hpp create mode 100644 sprout/container/static_size.hpp create mode 100644 sprout/container/sub_container_traits.hpp create mode 100644 sprout/container/traits.hpp create mode 100644 sprout/container/value_type.hpp delete mode 100644 sprout/fixed_container.hpp delete mode 100644 sprout/fixed_container/begin.hpp delete mode 100644 sprout/fixed_container/clone.hpp delete mode 100644 sprout/fixed_container/const_iterator.hpp delete mode 100644 sprout/fixed_container/const_pointer.hpp delete mode 100644 sprout/fixed_container/const_reference.hpp delete mode 100644 sprout/fixed_container/difference_type.hpp delete mode 100644 sprout/fixed_container/empty.hpp delete mode 100644 sprout/fixed_container/end.hpp delete mode 100644 sprout/fixed_container/fixed_begin.hpp delete mode 100644 sprout/fixed_container/fixed_begin_offset.hpp delete mode 100644 sprout/fixed_container/fixed_begin_offset_backward.hpp delete mode 100644 sprout/fixed_container/fixed_container_type.hpp delete mode 100644 sprout/fixed_container/fixed_end.hpp delete mode 100644 sprout/fixed_container/fixed_end_offset.hpp delete mode 100644 sprout/fixed_container/fixed_end_offset_backward.hpp delete mode 100644 sprout/fixed_container/fixed_size.hpp delete mode 100644 sprout/fixed_container/functions.hpp delete mode 100644 sprout/fixed_container/get_fixed.hpp delete mode 100644 sprout/fixed_container/iterator.hpp delete mode 100644 sprout/fixed_container/make_clone.hpp delete mode 100644 sprout/fixed_container/metafunctions.hpp delete mode 100644 sprout/fixed_container/mutable_iterator.hpp delete mode 100644 sprout/fixed_container/mutable_pointer.hpp delete mode 100644 sprout/fixed_container/mutable_reference.hpp delete mode 100644 sprout/fixed_container/pointer.hpp delete mode 100644 sprout/fixed_container/rebind_fixed_size_eval.hpp delete mode 100644 sprout/fixed_container/reference.hpp delete mode 100644 sprout/fixed_container/remake_clone.hpp delete mode 100644 sprout/fixed_container/size.hpp delete mode 100644 sprout/fixed_container/size_type.hpp delete mode 100644 sprout/fixed_container/traits.hpp delete mode 100644 sprout/fixed_container/value_type.hpp delete mode 100644 sprout/tuple/clone.hpp create mode 100644 sprout/tuple/deep_copy.hpp create mode 100644 sprout/tuple/make.hpp delete mode 100644 sprout/tuple/make_clone.hpp create mode 100644 sprout/tuple/remake.hpp delete mode 100644 sprout/tuple/remake_clone.hpp diff --git a/README b/README index 0ca72d93..4188cc4f 100644 --- a/README +++ b/README @@ -57,7 +57,7 @@ constexpr UUID (UUID) sprout/pit.hpp コンテナ特性 (Container traits) - sprout/fixed_container.hpp + sprout/container.hpp constexpr 構文解析 (Parsing) sprout/weed.hpp diff --git a/sprout/adapt/sscrisk/cel/array.hpp b/sprout/adapt/sscrisk/cel/array.hpp index 3ca62fcb..8b792ddd 100644 --- a/sprout/adapt/sscrisk/cel/array.hpp +++ b/sprout/adapt/sscrisk/cel/array.hpp @@ -1,89 +1,70 @@ #ifndef SPROUT_ADAPT_SSCRISK_CEL_ARRAY_HPP #define SPROUT_ADAPT_SSCRISK_CEL_ARRAY_HPP -#include -#include #include #include -#include +#include #if SPROUT_USE_INDEX_ITERATOR_IMPLEMENTATION -# include -# include +# include +# include +# include +# include # include #endif namespace sprout { - // - // rebind_fixed_size - // - template - struct rebind_fixed_size > { - public: - template >::size_type S> - struct apply { - public: - typedef sscrisk::cel::array type; - }; - }; - #if SPROUT_USE_INDEX_ITERATOR_IMPLEMENTATION // - // fixed_container_traits + // container_traits // template - struct fixed_container_traits > - : public sprout::detail::fixed_container_traits_base > + struct container_traits > + : public sprout::detail::container_traits_default_types > + , public sprout::detail::container_traits_default_size > { public: - typedef sscrisk::cel::array fixed_container_type; - typedef sscrisk::cel::array internal_type; - typedef sscrisk::cel::array clone_type; - typedef sprout::index_iterator iterator; - typedef sprout::index_iterator const_iterator; - public: - SPROUT_STATIC_CONSTEXPR typename sprout::detail::fixed_container_traits_base::size_type fixed_size - = std::tuple_size::type>::value - ; + typedef sprout::index_iterator&> iterator; + typedef sprout::index_iterator const&> const_iterator; }; // // begin // template - typename sprout::fixed_container_traits >::iterator begin(sscrisk::cel::array& range) { - return typename sprout::fixed_container_traits >::iterator(range, 0); + typename sprout::container_traits >::iterator begin(sscrisk::cel::array& cont) { + return typename sprout::container_traits >::iterator(cont, 0); } template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits >::const_iterator begin(sscrisk::cel::array const& range) { - return typename sprout::fixed_container_traits >::const_iterator(range, 0); + SPROUT_CONSTEXPR typename sprout::container_traits >::const_iterator begin(sscrisk::cel::array const& cont) { + return typename sprout::container_traits >::const_iterator(cont, 0); } // // cbegin // template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits >::const_iterator cbegin(sscrisk::cel::array const& range) { - return sprout::fixed_container_traits >::const_iterator(range, 0); + SPROUT_CONSTEXPR typename sprout::container_traits >::const_iterator cbegin(sscrisk::cel::array const& cont) { + return sprout::container_traits >::const_iterator(cont, 0); } // // end // template - typename sprout::fixed_container_traits >::iterator end(sscrisk::cel::array& range) { - return typename sprout::fixed_container_traits >::iterator(range, range.size()); + typename sprout::container_traits >::iterator end(sscrisk::cel::array& cont) { + return typename sprout::container_traits >::iterator(cont, cont.size()); } template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits >::const_iterator end(sscrisk::cel::array const& range) { - return typename sprout::fixed_container_traits >::const_iterator(range, range.size()); + 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 - SPROUT_CONSTEXPR typename sprout::fixed_container_traits >::const_iterator cend(sscrisk::cel::array const& range) { - return typename sprout::fixed_container_traits >::const_iterator(range, range.size()); + SPROUT_CONSTEXPR typename sprout::container_traits >::const_iterator cend(sscrisk::cel::array const& cont) { + return typename sprout::container_traits >::const_iterator(cont, cont.size()); } #endif } // namespace sprout diff --git a/sprout/algorithm/fit/bogo_sort.hpp b/sprout/algorithm/fit/bogo_sort.hpp index cee00095..95f4a346 100644 --- a/sprout/algorithm/fit/bogo_sort.hpp +++ b/sprout/algorithm/fit/bogo_sort.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_BOGO_SORT_HPP #include -#include -#include +#include +#include #include #include #include @@ -16,11 +16,11 @@ namespace sprout { Container const& cont, UniformRandomNumberGenerator&& g, Compare comp, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::bogo_sort(cont, sprout::forward(g), comp)), + sprout::get_internal(sprout::fixed::bogo_sort(cont, sprout::forward(g), comp)), offset, offset + sprout::size(cont) ); @@ -40,7 +40,7 @@ namespace sprout { cont, sprout::forward(g), comp, - sprout::fixed_begin_offset(cont) + sprout::internal_begin_offset(cont) ); } @@ -49,11 +49,11 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type bogo_sort_impl( Container const& cont, UniformRandomNumberGenerator&& g, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::bogo_sort(cont, sprout::forward(g))), + sprout::get_internal(sprout::fixed::bogo_sort(cont, sprout::forward(g))), offset, offset + sprout::size(cont) ); @@ -71,7 +71,7 @@ namespace sprout { return sprout::fit::detail::bogo_sort_impl( cont, sprout::forward(g), - sprout::fixed_begin_offset(cont) + sprout::internal_begin_offset(cont) ); } } // namespace fit diff --git a/sprout/algorithm/fit/bogo_sort_result.hpp b/sprout/algorithm/fit/bogo_sort_result.hpp index f088fd08..3f3c0fa6 100644 --- a/sprout/algorithm/fit/bogo_sort_result.hpp +++ b/sprout/algorithm/fit/bogo_sort_result.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -19,7 +19,7 @@ namespace sprout { typename std::decay::type > bogo_sort_result_impl_1( Sorted const& sorted, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { typedef sprout::tuples::tuple< @@ -28,7 +28,7 @@ namespace sprout { > result_type; return result_type( sprout::sub_copy( - sprout::get_fixed(sprout::tuples::get<0>(sorted)), + sprout::get_internal(sprout::tuples::get<0>(sorted)), offset, offset + sprout::size(sprout::tuples::get<0>(sorted)) ), @@ -43,7 +43,7 @@ namespace sprout { Container const& cont, UniformRandomNumberGenerator&& g, Compare comp, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::fit::detail::bogo_sort_result_impl_1( @@ -69,7 +69,7 @@ namespace sprout { cont, sprout::forward(g), comp, - sprout::fixed_begin_offset(cont) + sprout::internal_begin_offset(cont) ); } @@ -81,7 +81,7 @@ namespace sprout { > bogo_sort_result_impl( Container const& cont, UniformRandomNumberGenerator&& g, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::fit::detail::bogo_sort_result_impl_1( @@ -105,7 +105,7 @@ namespace sprout { return sprout::fit::detail::bogo_sort_result_impl( cont, sprout::forward(g), - sprout::fixed_begin_offset(cont) + sprout::internal_begin_offset(cont) ); } } // namespace fit diff --git a/sprout/algorithm/fit/copy.hpp b/sprout/algorithm/fit/copy.hpp index ec28c0f3..da01f294 100644 --- a/sprout/algorithm/fit/copy.hpp +++ b/sprout/algorithm/fit/copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_COPY_HPP #include -#include -#include +#include +#include #include #include #include @@ -18,11 +18,11 @@ namespace sprout { InputIterator first, InputIterator last, Result const& result, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::copy(first, last, result)), + sprout::get_internal(sprout::fixed::copy(first, last, result)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last), sprout::size(result)) ); @@ -38,7 +38,7 @@ namespace sprout { Result const& result ) { - return sprout::fit::detail::copy_impl(first, last, result, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::copy_impl(first, last, result, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/copy_backward.hpp b/sprout/algorithm/fit/copy_backward.hpp index 832ac936..ddd1be98 100644 --- a/sprout/algorithm/fit/copy_backward.hpp +++ b/sprout/algorithm/fit/copy_backward.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_COPY_BACKWARD_HPP #include -#include -#include +#include +#include #include #include #include @@ -18,11 +18,11 @@ namespace sprout { BidirectionalIterator first, BidirectionalIterator last, Result const& result, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::copy_backward(first, last, result)), + sprout::get_internal(sprout::fixed::copy_backward(first, last, result)), offset - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last), sprout::size(result)), offset ); @@ -38,7 +38,7 @@ namespace sprout { Result const& result ) { - return sprout::fit::detail::copy_backward_impl(first, last, result, sprout::fixed_end_offset(result)); + return sprout::fit::detail::copy_backward_impl(first, last, result, sprout::internal_end_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/copy_if.hpp b/sprout/algorithm/fit/copy_if.hpp index 868f08e5..26b9cea7 100644 --- a/sprout/algorithm/fit/copy_if.hpp +++ b/sprout/algorithm/fit/copy_if.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_COPY_IF_HPP #include -#include -#include +#include +#include #include #include #include @@ -18,11 +18,11 @@ namespace sprout { InputIterator last, Result const& result, Predicate pred, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::copy_if(first, last, result, pred)), + sprout::get_internal(sprout::fixed::copy_if(first, last, result, pred)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::count_if(first, last, pred), sprout::size(result)) ); @@ -39,7 +39,7 @@ namespace sprout { Predicate pred ) { - return sprout::fit::detail::copy_if_impl(first, last, result, pred, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::copy_if_impl(first, last, result, pred, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/copy_n.hpp b/sprout/algorithm/fit/copy_n.hpp index 11428b9a..0bacbe20 100644 --- a/sprout/algorithm/fit/copy_n.hpp +++ b/sprout/algorithm/fit/copy_n.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_COPY_N_HPP #include -#include -#include +#include +#include #include #include #include @@ -17,11 +17,11 @@ namespace sprout { InputIterator first, Size n, Result const& result, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::copy_n(first, n, result)), + sprout::get_internal(sprout::fixed::copy_n(first, n, result)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(n, sprout::size(result)) ); @@ -37,7 +37,7 @@ namespace sprout { Result const& result ) { - return sprout::fit::detail::copy_n_impl(first, n, result, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::copy_n_impl(first, n, result, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/fill.hpp b/sprout/algorithm/fit/fill.hpp index 37858feb..204f4e56 100644 --- a/sprout/algorithm/fit/fill.hpp +++ b/sprout/algorithm/fit/fill.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_FILL_HPP #include -#include -#include +#include +#include #include #include #include @@ -15,11 +15,11 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type fill_impl( Container const& cont, T const& value, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::fill(cont, value)), + sprout::get_internal(sprout::fixed::fill(cont, value)), offset, offset + sprout::size(cont) ); @@ -34,7 +34,7 @@ namespace sprout { T const& value ) { - return sprout::fit::detail::fill_impl(cont, value, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::fill_impl(cont, value, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/fill_n.hpp b/sprout/algorithm/fit/fill_n.hpp index 9ed1bfa5..f9312533 100644 --- a/sprout/algorithm/fit/fill_n.hpp +++ b/sprout/algorithm/fit/fill_n.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_FILL_N_HPP #include -#include -#include +#include +#include #include #include #include @@ -17,11 +17,11 @@ namespace sprout { Container const& cont, Size n, T const& value, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::fill_n(cont, n, value)), + sprout::get_internal(sprout::fixed::fill_n(cont, n, value)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(n, sprout::size(cont)) ); @@ -37,7 +37,7 @@ namespace sprout { T const& value ) { - return sprout::fit::detail::fill_n_impl(cont, n, value, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::fill_n_impl(cont, n, value, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/generate.hpp b/sprout/algorithm/fit/generate.hpp index 016f4bfe..e77db661 100644 --- a/sprout/algorithm/fit/generate.hpp +++ b/sprout/algorithm/fit/generate.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_GENERATE_HPP #include -#include -#include +#include +#include #include #include #include @@ -15,12 +15,12 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type generate_impl( Container const& cont, Generator gen, - typename sprout::fixed_container_traits::difference_type offset, + typename sprout::container_traits::difference_type offset, Inits const&... inits ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::generate(cont, gen, inits...)), + sprout::get_internal(sprout::fixed::generate(cont, gen, inits...)), offset, offset + sprout::size(cont) ); @@ -36,7 +36,7 @@ namespace sprout { Inits const&... inits ) { - return sprout::fit::detail::generate_impl(cont, gen, sprout::fixed_begin_offset(cont), inits...); + return sprout::fit::detail::generate_impl(cont, gen, sprout::internal_begin_offset(cont), inits...); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/generate_n.hpp b/sprout/algorithm/fit/generate_n.hpp index 4792784d..6b383886 100644 --- a/sprout/algorithm/fit/generate_n.hpp +++ b/sprout/algorithm/fit/generate_n.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_GENERATE_N_HPP #include -#include -#include +#include +#include #include #include #include @@ -17,12 +17,12 @@ namespace sprout { Container const& cont, Size n, Generator gen, - typename sprout::fixed_container_traits::difference_type offset, + typename sprout::container_traits::difference_type offset, Inits const&... inits ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::generate_n(cont, n, gen, inits...)), + sprout::get_internal(sprout::fixed::generate_n(cont, n, gen, inits...)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(n, sprout::size(cont)) ); @@ -39,7 +39,7 @@ namespace sprout { Inits const&... inits ) { - return sprout::fit::detail::generate_n_impl(cont, n, gen, sprout::fixed_begin_offset(cont), inits...); + return sprout::fit::detail::generate_n_impl(cont, n, gen, sprout::internal_begin_offset(cont), inits...); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/inplace_merge.hpp b/sprout/algorithm/fit/inplace_merge.hpp index 2bff81bf..8ae72a4f 100644 --- a/sprout/algorithm/fit/inplace_merge.hpp +++ b/sprout/algorithm/fit/inplace_merge.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_INPLACE_MERGE_HPP #include -#include -#include +#include +#include #include #include #include @@ -14,13 +14,13 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type inplace_merge_impl( Container const& cont, - typename sprout::fixed_container_traits::const_iterator middle, + typename sprout::container_traits::const_iterator middle, Compare comp, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::inplace_merge(cont, middle, comp)), + sprout::get_internal(sprout::fixed::inplace_merge(cont, middle, comp)), offset, offset + sprout::size(cont) ); @@ -32,23 +32,23 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type inplace_merge( Container const& cont, - typename sprout::fixed_container_traits::const_iterator middle, + typename sprout::container_traits::const_iterator middle, Compare comp ) { - return sprout::fit::detail::inplace_merge_impl(cont, middle, comp, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::inplace_merge_impl(cont, middle, comp, sprout::internal_begin_offset(cont)); } namespace detail { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type inplace_merge_impl( Container const& cont, - typename sprout::fixed_container_traits::const_iterator middle, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::const_iterator middle, + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::inplace_merge(cont, middle)), + sprout::get_internal(sprout::fixed::inplace_merge(cont, middle)), offset, offset + sprout::size(cont) ); @@ -60,10 +60,10 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type inplace_merge( Container const& cont, - typename sprout::fixed_container_traits::const_iterator middle + typename sprout::container_traits::const_iterator middle ) { - return sprout::fit::detail::inplace_merge_impl(cont, middle, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::inplace_merge_impl(cont, middle, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/make_heap.hpp b/sprout/algorithm/fit/make_heap.hpp index 050acdf6..da54ea40 100644 --- a/sprout/algorithm/fit/make_heap.hpp +++ b/sprout/algorithm/fit/make_heap.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_MAKE_HEAP_HPP #include -#include -#include +#include +#include #include #include #include @@ -15,11 +15,11 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type make_heap_impl( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::make_heap(cont, comp)), + sprout::get_internal(sprout::fixed::make_heap(cont, comp)), offset, offset + sprout::size(cont) ); @@ -34,18 +34,18 @@ namespace sprout { Compare comp ) { - return sprout::fit::detail::make_heap_impl(cont, comp, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::make_heap_impl(cont, comp, sprout::internal_begin_offset(cont)); } namespace detail { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type make_heap_impl( Container const& cont, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::make_heap(cont)), + sprout::get_internal(sprout::fixed::make_heap(cont)), offset, offset + sprout::size(cont) ); @@ -59,7 +59,7 @@ namespace sprout { Container const& cont ) { - return sprout::fit::detail::make_heap_impl(cont, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::make_heap_impl(cont, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/make_partial_heap.hpp b/sprout/algorithm/fit/make_partial_heap.hpp index 70118993..e245b1de 100644 --- a/sprout/algorithm/fit/make_partial_heap.hpp +++ b/sprout/algorithm/fit/make_partial_heap.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_MAKE_PARTIAL_HEAP_HPP #include -#include -#include +#include +#include #include #include #include @@ -15,13 +15,13 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type make_partial_heap_impl( Container const& cont, - typename sprout::fixed_container_traits::const_iterator middle, + typename sprout::container_traits::const_iterator middle, Compare comp, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::make_partial_heap(cont, middle, comp)), + sprout::get_internal(sprout::fixed::make_partial_heap(cont, middle, comp)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), middle) ); @@ -33,23 +33,23 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type make_partial_heap( Container const& cont, - typename sprout::fixed_container_traits::const_iterator middle, + typename sprout::container_traits::const_iterator middle, Compare comp ) { - return sprout::fit::detail::make_partial_heap_impl(cont, middle, comp, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::make_partial_heap_impl(cont, middle, comp, sprout::internal_begin_offset(cont)); } namespace detail { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type make_partial_heap_impl( Container const& cont, - typename sprout::fixed_container_traits::const_iterator middle, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::const_iterator middle, + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::make_partial_heap(cont, middle)), + sprout::get_internal(sprout::fixed::make_partial_heap(cont, middle)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), middle) ); @@ -61,10 +61,10 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type make_partial_heap( Container const& cont, - typename sprout::fixed_container_traits::const_iterator middle + typename sprout::container_traits::const_iterator middle ) { - return sprout::fit::detail::make_partial_heap_impl(cont, middle, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::make_partial_heap_impl(cont, middle, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/merge.hpp b/sprout/algorithm/fit/merge.hpp index 55cd8566..6810499f 100644 --- a/sprout/algorithm/fit/merge.hpp +++ b/sprout/algorithm/fit/merge.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_MERGE_HPP #include -#include -#include +#include +#include #include #include #include @@ -21,11 +21,11 @@ namespace sprout { InputIterator2 last2, Result const& result, Compare comp, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::merge(first1, last1, first2, last2, result, comp)), + sprout::get_internal(sprout::fixed::merge(first1, last1, first2, last2, result, comp)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min( NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first1, last1) + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first2, last2), @@ -47,7 +47,7 @@ namespace sprout { Compare comp ) { - return sprout::fit::detail::merge_impl(first1, last1, first2, last2, result, comp, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::merge_impl(first1, last1, first2, last2, result, comp, sprout::internal_begin_offset(result)); } namespace detail { @@ -58,11 +58,11 @@ namespace sprout { InputIterator2 first2, InputIterator2 last2, Result const& result, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::merge(first1, last1, first2, last2, result)), + sprout::get_internal(sprout::fixed::merge(first1, last1, first2, last2, result)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min( NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first1, last1) + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first2, last2), @@ -83,7 +83,7 @@ namespace sprout { Result const& result ) { - return sprout::fit::detail::merge_impl(first1, last1, first2, last2, result, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::merge_impl(first1, last1, first2, last2, result, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/nth_element.hpp b/sprout/algorithm/fit/nth_element.hpp index a1cc6694..4473068e 100644 --- a/sprout/algorithm/fit/nth_element.hpp +++ b/sprout/algorithm/fit/nth_element.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_NTH_ELEMENT_HPP #include -#include -#include +#include +#include #include #include #include @@ -15,13 +15,13 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type nth_element_impl( Container const& cont, - typename sprout::fixed_container_traits::const_iterator nth, + typename sprout::container_traits::const_iterator nth, Compare comp, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::nth_element(cont, nth, comp)), + sprout::get_internal(sprout::fixed::nth_element(cont, nth, comp)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), nth) + 1 ); @@ -33,23 +33,23 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type nth_element( Container const& cont, - typename sprout::fixed_container_traits::const_iterator nth, + typename sprout::container_traits::const_iterator nth, Compare comp ) { - return sprout::fit::detail::nth_element_impl(cont, nth, comp, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::nth_element_impl(cont, nth, comp, sprout::internal_begin_offset(cont)); } namespace detail { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type nth_element_impl( Container const& cont, - typename sprout::fixed_container_traits::const_iterator nth, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::const_iterator nth, + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::nth_element(cont, nth)), + sprout::get_internal(sprout::fixed::nth_element(cont, nth)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), nth) + 1 ); @@ -61,10 +61,10 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type nth_element( Container const& cont, - typename sprout::fixed_container_traits::const_iterator nth + typename sprout::container_traits::const_iterator nth ) { - return sprout::fit::detail::nth_element_impl(cont, nth, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::nth_element_impl(cont, nth, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/partial_sort.hpp b/sprout/algorithm/fit/partial_sort.hpp index fae1aef2..9a47abf1 100644 --- a/sprout/algorithm/fit/partial_sort.hpp +++ b/sprout/algorithm/fit/partial_sort.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_PARTIAL_SORT_HPP #include -#include -#include +#include +#include #include #include #include @@ -15,13 +15,13 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type partial_sort_impl( Container const& cont, - typename sprout::fixed_container_traits::const_iterator middle, + typename sprout::container_traits::const_iterator middle, Compare comp, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::partial_sort(cont, middle, comp)), + sprout::get_internal(sprout::fixed::partial_sort(cont, middle, comp)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), middle) ); @@ -33,23 +33,23 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type partial_sort( Container const& cont, - typename sprout::fixed_container_traits::const_iterator middle, + typename sprout::container_traits::const_iterator middle, Compare comp ) { - return sprout::fit::detail::partial_sort_impl(cont, middle, comp, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::partial_sort_impl(cont, middle, comp, sprout::internal_begin_offset(cont)); } namespace detail { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type partial_sort_impl( Container const& cont, - typename sprout::fixed_container_traits::const_iterator middle, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::const_iterator middle, + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::partial_sort(cont, middle)), + sprout::get_internal(sprout::fixed::partial_sort(cont, middle)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), middle) ); @@ -61,10 +61,10 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type partial_sort( Container const& cont, - typename sprout::fixed_container_traits::const_iterator middle + typename sprout::container_traits::const_iterator middle ) { - return sprout::fit::detail::partial_sort_impl(cont, middle, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::partial_sort_impl(cont, middle, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/partition.hpp b/sprout/algorithm/fit/partition.hpp index 87d7b795..29c5b422 100644 --- a/sprout/algorithm/fit/partition.hpp +++ b/sprout/algorithm/fit/partition.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_PARTITION_HPP #include -#include -#include +#include +#include #include #include #include @@ -16,11 +16,11 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type partition_impl( Container const& cont, Predicate pred, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::partition(cont, pred)), + sprout::get_internal(sprout::fixed::partition(cont, pred)), offset, offset + sprout::size(cont) - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::count_if(sprout::begin(cont), sprout::end(cont), pred) ); @@ -35,7 +35,7 @@ namespace sprout { Predicate pred ) { - return sprout::fit::detail::partition_impl(cont, pred, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::partition_impl(cont, pred, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/partition_copy.hpp b/sprout/algorithm/fit/partition_copy.hpp index bd4b9422..c85e82f8 100644 --- a/sprout/algorithm/fit/partition_copy.hpp +++ b/sprout/algorithm/fit/partition_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_PARTITION_COPY_HPP #include -#include -#include +#include +#include #include #include #include @@ -20,11 +20,11 @@ namespace sprout { InputIterator last, Result const& result, Predicate pred, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::partition_copy(first, last, result, pred)), + sprout::get_internal(sprout::fixed::partition_copy(first, last, result, pred)), offset, offset + sprout::detail::count_n_if( first, @@ -48,7 +48,7 @@ namespace sprout { Predicate pred ) { - return sprout::fit::detail::partition_copy_impl(first, last, result, pred, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::partition_copy_impl(first, last, result, pred, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/pop_heap.hpp b/sprout/algorithm/fit/pop_heap.hpp index b8eb802a..3a3be0f1 100644 --- a/sprout/algorithm/fit/pop_heap.hpp +++ b/sprout/algorithm/fit/pop_heap.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_POP_HEAP_HPP #include -#include -#include +#include +#include #include #include #include @@ -15,11 +15,11 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type pop_heap_impl( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::pop_heap(cont, comp)), + sprout::get_internal(sprout::fixed::pop_heap(cont, comp)), offset, offset + sprout::size(cont) - 1 ); @@ -34,18 +34,18 @@ namespace sprout { Compare comp ) { - return sprout::fit::detail::pop_heap_impl(cont, comp, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::pop_heap_impl(cont, comp, sprout::internal_begin_offset(cont)); } namespace detail { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type pop_heap_impl( Container const& cont, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::pop_heap(cont)), + sprout::get_internal(sprout::fixed::pop_heap(cont)), offset, offset + sprout::size(cont) - 1 ); @@ -59,7 +59,7 @@ namespace sprout { Container const& cont ) { - return sprout::fit::detail::pop_heap_impl(cont, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::pop_heap_impl(cont, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/push_heap.hpp b/sprout/algorithm/fit/push_heap.hpp index 197b62b8..44da3413 100644 --- a/sprout/algorithm/fit/push_heap.hpp +++ b/sprout/algorithm/fit/push_heap.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_PUSH_HEAP_HPP #include -#include -#include +#include +#include #include #include #include @@ -15,11 +15,11 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type push_heap_impl( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::push_heap(cont, comp)), + sprout::get_internal(sprout::fixed::push_heap(cont, comp)), offset, offset + sprout::size(cont) ); @@ -34,18 +34,18 @@ namespace sprout { Compare comp ) { - return sprout::fit::detail::push_heap_impl(cont, comp, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::push_heap_impl(cont, comp, sprout::internal_begin_offset(cont)); } namespace detail { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type push_heap_impl( Container const& cont, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::push_heap(cont)), + sprout::get_internal(sprout::fixed::push_heap(cont)), offset, offset + sprout::size(cont) ); @@ -59,7 +59,7 @@ namespace sprout { Container const& cont ) { - return sprout::fit::detail::push_heap_impl(cont, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::push_heap_impl(cont, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/remove.hpp b/sprout/algorithm/fit/remove.hpp index a81870c9..7d333b8f 100644 --- a/sprout/algorithm/fit/remove.hpp +++ b/sprout/algorithm/fit/remove.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_REMOVE_HPP #include -#include -#include +#include +#include #include #include #include @@ -16,11 +16,11 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type remove_impl( Container const& cont, T const& value, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::remove(cont, value)), + sprout::get_internal(sprout::fixed::remove(cont, value)), offset, offset + sprout::size(cont) - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::count(sprout::begin(cont), sprout::end(cont), value) ); @@ -35,7 +35,7 @@ namespace sprout { T const& value ) { - return sprout::fit::detail::remove_impl(cont, value, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::remove_impl(cont, value, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/remove_copy.hpp b/sprout/algorithm/fit/remove_copy.hpp index 2446043a..8cd400eb 100644 --- a/sprout/algorithm/fit/remove_copy.hpp +++ b/sprout/algorithm/fit/remove_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_REMOVE_COPY_HPP #include -#include -#include +#include +#include #include #include #include @@ -19,11 +19,11 @@ namespace sprout { InputIterator last, Result const& result, T const& value, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::remove_copy(first, last, result, value)), + sprout::get_internal(sprout::fixed::remove_copy(first, last, result, value)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last) - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::count(first, last, value), sprout::size(result)) ); @@ -40,7 +40,7 @@ namespace sprout { T const& value ) { - return sprout::fit::detail::remove_copy_impl(first, last, result, value, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::remove_copy_impl(first, last, result, value, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/remove_copy_if.hpp b/sprout/algorithm/fit/remove_copy_if.hpp index 71b20b5d..61f033f2 100644 --- a/sprout/algorithm/fit/remove_copy_if.hpp +++ b/sprout/algorithm/fit/remove_copy_if.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_REMOVE_COPY_IF_HPP #include -#include -#include +#include +#include #include #include #include @@ -19,11 +19,11 @@ namespace sprout { InputIterator last, Result const& result, Predicate pred, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::remove_copy_if(first, last, result, pred)), + sprout::get_internal(sprout::fixed::remove_copy_if(first, last, result, pred)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last) - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::count_if(first, last, pred), sprout::size(result)) ); @@ -40,7 +40,7 @@ namespace sprout { Predicate pred ) { - return sprout::fit::detail::remove_copy_if_impl(first, last, result, pred, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::remove_copy_if_impl(first, last, result, pred, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/remove_if.hpp b/sprout/algorithm/fit/remove_if.hpp index 2eecfea1..46096b9b 100644 --- a/sprout/algorithm/fit/remove_if.hpp +++ b/sprout/algorithm/fit/remove_if.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_REMOVE_IF_HPP #include -#include -#include +#include +#include #include #include #include @@ -16,11 +16,11 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type remove_if_impl( Container const& cont, Predicate pred, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::remove_if(cont, pred)), + sprout::get_internal(sprout::fixed::remove_if(cont, pred)), offset, offset + sprout::size(cont) - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::count_if(sprout::begin(cont), sprout::end(cont), pred) ); @@ -35,7 +35,7 @@ namespace sprout { Predicate pred ) { - return sprout::fit::detail::remove_if_impl(cont, pred, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::remove_if_impl(cont, pred, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/replace.hpp b/sprout/algorithm/fit/replace.hpp index bb2a22fd..4c715272 100644 --- a/sprout/algorithm/fit/replace.hpp +++ b/sprout/algorithm/fit/replace.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_REPLACE_HPP #include -#include -#include +#include +#include #include #include #include @@ -16,11 +16,11 @@ namespace sprout { Container const& cont, T const& old_value, T const& new_value, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::replace(cont, old_value, new_value)), + sprout::get_internal(sprout::fixed::replace(cont, old_value, new_value)), offset, offset + sprout::size(cont) ); @@ -36,7 +36,7 @@ namespace sprout { T const& new_value ) { - return sprout::fit::detail::replace_impl(cont, old_value, new_value, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::replace_impl(cont, old_value, new_value, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/replace_copy.hpp b/sprout/algorithm/fit/replace_copy.hpp index 4e2b67ed..fcef7aaf 100644 --- a/sprout/algorithm/fit/replace_copy.hpp +++ b/sprout/algorithm/fit/replace_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_REPLACE_COPY_HPP #include -#include -#include +#include +#include #include #include #include @@ -20,11 +20,11 @@ namespace sprout { Result const& result, T const& old_value, T const& new_value, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::replace_copy(first, last, result, old_value, new_value)), + sprout::get_internal(sprout::fixed::replace_copy(first, last, result, old_value, new_value)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last), sprout::size(result)) ); @@ -42,7 +42,7 @@ namespace sprout { T const& new_value ) { - return sprout::fit::detail::replace_copy_impl(first, last, result, old_value, new_value, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::replace_copy_impl(first, last, result, old_value, new_value, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/replace_copy_if.hpp b/sprout/algorithm/fit/replace_copy_if.hpp index e8e5e0de..b88ac201 100644 --- a/sprout/algorithm/fit/replace_copy_if.hpp +++ b/sprout/algorithm/fit/replace_copy_if.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_REPLACE_COPY_IF_HPP #include -#include -#include +#include +#include #include #include #include @@ -20,11 +20,11 @@ namespace sprout { Result const& result, Predicate pred, T const& new_value, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::replace_copy_if(first, last, result, pred, new_value)), + sprout::get_internal(sprout::fixed::replace_copy_if(first, last, result, pred, new_value)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last), sprout::size(result)) ); @@ -42,7 +42,7 @@ namespace sprout { T const& new_value ) { - return sprout::fit::detail::replace_copy_if_impl(first, last, result, pred, new_value, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::replace_copy_if_impl(first, last, result, pred, new_value, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/replace_if.hpp b/sprout/algorithm/fit/replace_if.hpp index ba957841..1b350e1e 100644 --- a/sprout/algorithm/fit/replace_if.hpp +++ b/sprout/algorithm/fit/replace_if.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_REPLACE_IF_HPP #include -#include -#include +#include +#include #include #include #include @@ -16,11 +16,11 @@ namespace sprout { Container const& cont, Predicate pred, T const& new_value, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::replace_if(cont, pred, new_value)), + sprout::get_internal(sprout::fixed::replace_if(cont, pred, new_value)), offset, offset + sprout::size(cont) ); @@ -36,7 +36,7 @@ namespace sprout { T const& new_value ) { - return sprout::fit::detail::replace_if_impl(cont, pred, new_value, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::replace_if_impl(cont, pred, new_value, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/result_of.hpp b/sprout/algorithm/fit/result_of.hpp index b54a3d02..7471d0df 100644 --- a/sprout/algorithm/fit/result_of.hpp +++ b/sprout/algorithm/fit/result_of.hpp @@ -1,8 +1,10 @@ #ifndef SPROUT_ALGORITHM_FIT_RESULT_OF_HPP #define SPROUT_ALGORITHM_FIT_RESULT_OF_HPP +#include #include -#include +#include +#include #include #include @@ -16,9 +18,11 @@ namespace sprout { struct algorithm { public: typedef sprout::sub_array< - typename sprout::fixed_container_traits< - typename sprout::fixed::result_of::algorithm::type - >::internal_type + typename std::decay< + typename sprout::containers::internal< + typename sprout::fixed::result_of::algorithm::type + >::type + >::type > type; }; } // namespace result_of diff --git a/sprout/algorithm/fit/reverse.hpp b/sprout/algorithm/fit/reverse.hpp index 6a75481e..f1983388 100644 --- a/sprout/algorithm/fit/reverse.hpp +++ b/sprout/algorithm/fit/reverse.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_REVERSE_HPP #include -#include -#include +#include +#include #include #include #include @@ -14,11 +14,11 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type reverse_impl( Container const& cont, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::reverse(cont)), + sprout::get_internal(sprout::fixed::reverse(cont)), offset, offset + sprout::size(cont) ); @@ -32,7 +32,7 @@ namespace sprout { Container const& cont ) { - return sprout::fit::detail::reverse_impl(cont, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::reverse_impl(cont, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/reverse_copy.hpp b/sprout/algorithm/fit/reverse_copy.hpp index c01fb783..0a3fb126 100644 --- a/sprout/algorithm/fit/reverse_copy.hpp +++ b/sprout/algorithm/fit/reverse_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_REVERSE_COPY_HPP #include -#include -#include +#include +#include #include #include #include @@ -18,11 +18,11 @@ namespace sprout { BidirectionalIterator first, BidirectionalIterator last, Result const& result, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::reverse_copy(first, last, result)), + sprout::get_internal(sprout::fixed::reverse_copy(first, last, result)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last), sprout::size(result)) ); @@ -38,7 +38,7 @@ namespace sprout { Result const& result ) { - return sprout::fit::detail::reverse_copy_impl(first, last, result, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::reverse_copy_impl(first, last, result, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/rotate.hpp b/sprout/algorithm/fit/rotate.hpp index 0b0c8d56..a539b2a1 100644 --- a/sprout/algorithm/fit/rotate.hpp +++ b/sprout/algorithm/fit/rotate.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_ROTATE_HPP #include -#include -#include +#include +#include #include #include #include @@ -14,12 +14,12 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type rotate_impl( Container const& cont, - typename sprout::fixed_container_traits::const_iterator middle, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::const_iterator middle, + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::rotate(cont, middle)), + sprout::get_internal(sprout::fixed::rotate(cont, middle)), offset, offset + sprout::size(cont) ); @@ -31,10 +31,10 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type rotate( Container const& cont, - typename sprout::fixed_container_traits::const_iterator middle + typename sprout::container_traits::const_iterator middle ) { - return sprout::fit::detail::rotate_impl(cont, middle, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::rotate_impl(cont, middle, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/rotate_copy.hpp b/sprout/algorithm/fit/rotate_copy.hpp index dfa6a1ac..22c38585 100644 --- a/sprout/algorithm/fit/rotate_copy.hpp +++ b/sprout/algorithm/fit/rotate_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_ROTATE_COPY_HPP #include -#include -#include +#include +#include #include #include #include @@ -19,11 +19,11 @@ namespace sprout { ForwardIterator middle, ForwardIterator last, Result const& result, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::rotate_copy(first, middle, last, result)), + sprout::get_internal(sprout::fixed::rotate_copy(first, middle, last, result)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last), sprout::size(result)) ); @@ -40,7 +40,7 @@ namespace sprout { Result const& result ) { - return sprout::fit::detail::rotate_copy_impl(first, middle, last, result, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::rotate_copy_impl(first, middle, last, result, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/set_difference.hpp b/sprout/algorithm/fit/set_difference.hpp index 3102d3c1..220798d8 100644 --- a/sprout/algorithm/fit/set_difference.hpp +++ b/sprout/algorithm/fit/set_difference.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_SET_DIFFERENCE_HPP #include -#include -#include +#include +#include #include #include #include @@ -22,11 +22,11 @@ namespace sprout { InputIterator2 last2, Result const& result, Compare comp, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::set_difference(first1, last1, first2, last2, result, comp)), + sprout::get_internal(sprout::fixed::set_difference(first1, last1, first2, last2, result, comp)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min( NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first1, last1) @@ -50,7 +50,7 @@ namespace sprout { Compare comp ) { - return sprout::fit::detail::set_difference_impl(first1, last1, first2, last2, result, comp, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::set_difference_impl(first1, last1, first2, last2, result, comp, sprout::internal_begin_offset(result)); } namespace detail { @@ -61,11 +61,11 @@ namespace sprout { InputIterator2 first2, InputIterator2 last2, Result const& result, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::set_difference(first1, last1, first2, last2, result)), + sprout::get_internal(sprout::fixed::set_difference(first1, last1, first2, last2, result)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min( NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first1, last1) @@ -88,7 +88,7 @@ namespace sprout { Result const& result ) { - return sprout::fit::detail::set_difference_impl(first1, last1, first2, last2, result, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::set_difference_impl(first1, last1, first2, last2, result, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/set_intersection.hpp b/sprout/algorithm/fit/set_intersection.hpp index 3e729674..43dacc16 100644 --- a/sprout/algorithm/fit/set_intersection.hpp +++ b/sprout/algorithm/fit/set_intersection.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_SET_INTERSECTION_HPP #include -#include -#include +#include +#include #include #include #include @@ -21,11 +21,11 @@ namespace sprout { InputIterator2 last2, Result const& result, Compare comp, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::set_intersection(first1, last1, first2, last2, result, comp)), + sprout::get_internal(sprout::fixed::set_intersection(first1, last1, first2, last2, result, comp)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min( sprout::detail::overlap_count_2(first1, last1, first2, last2, comp), @@ -47,7 +47,7 @@ namespace sprout { Compare comp ) { - return sprout::fit::detail::set_intersection_impl(first1, last1, first2, last2, result, comp, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::set_intersection_impl(first1, last1, first2, last2, result, comp, sprout::internal_begin_offset(result)); } namespace detail { @@ -58,11 +58,11 @@ namespace sprout { InputIterator2 first2, InputIterator2 last2, Result const& result, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::set_intersection(first1, last1, first2, last2, result)), + sprout::get_internal(sprout::fixed::set_intersection(first1, last1, first2, last2, result)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min( sprout::detail::overlap_count_2(first1, last1, first2, last2), @@ -83,7 +83,7 @@ namespace sprout { Result const& result ) { - return sprout::fit::detail::set_intersection_impl(first1, last1, first2, last2, result, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::set_intersection_impl(first1, last1, first2, last2, result, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/set_symmetric_difference.hpp b/sprout/algorithm/fit/set_symmetric_difference.hpp index 642b0c43..4fafde36 100644 --- a/sprout/algorithm/fit/set_symmetric_difference.hpp +++ b/sprout/algorithm/fit/set_symmetric_difference.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_SET_SYMMETRIC_DIFFERENCE_HPP #include -#include -#include +#include +#include #include #include #include @@ -22,11 +22,11 @@ namespace sprout { InputIterator2 last2, Result const& result, Compare comp, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::set_symmetric_difference(first1, last1, first2, last2, result, comp)), + sprout::get_internal(sprout::fixed::set_symmetric_difference(first1, last1, first2, last2, result, comp)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min( NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first1, last1) @@ -51,7 +51,7 @@ namespace sprout { Compare comp ) { - return sprout::fit::detail::set_symmetric_difference_impl(first1, last1, first2, last2, result, comp, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::set_symmetric_difference_impl(first1, last1, first2, last2, result, comp, sprout::internal_begin_offset(result)); } namespace detail { @@ -62,11 +62,11 @@ namespace sprout { InputIterator2 first2, InputIterator2 last2, Result const& result, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::set_symmetric_difference(first1, last1, first2, last2, result)), + sprout::get_internal(sprout::fixed::set_symmetric_difference(first1, last1, first2, last2, result)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min( NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first1, last1) @@ -90,7 +90,7 @@ namespace sprout { Result const& result ) { - return sprout::fit::detail::set_symmetric_difference_impl(first1, last1, first2, last2, result, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::set_symmetric_difference_impl(first1, last1, first2, last2, result, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/set_union.hpp b/sprout/algorithm/fit/set_union.hpp index 5a716b87..a78451e8 100644 --- a/sprout/algorithm/fit/set_union.hpp +++ b/sprout/algorithm/fit/set_union.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_SET_UNION_HPP #include -#include -#include +#include +#include #include #include #include @@ -22,11 +22,11 @@ namespace sprout { InputIterator2 last2, Result const& result, Compare comp, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::set_union(first1, last1, first2, last2, result, comp)), + sprout::get_internal(sprout::fixed::set_union(first1, last1, first2, last2, result, comp)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min( NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first1, last1) @@ -51,7 +51,7 @@ namespace sprout { Compare comp ) { - return sprout::fit::detail::set_union_impl(first1, last1, first2, last2, result, comp, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::set_union_impl(first1, last1, first2, last2, result, comp, sprout::internal_begin_offset(result)); } namespace detail { @@ -62,11 +62,11 @@ namespace sprout { InputIterator2 first2, InputIterator2 last2, Result const& result, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::set_union(first1, last1, first2, last2, result)), + sprout::get_internal(sprout::fixed::set_union(first1, last1, first2, last2, result)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min( NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first1, last1) @@ -90,7 +90,7 @@ namespace sprout { Result const& result ) { - return sprout::fit::detail::set_union_impl(first1, last1, first2, last2, result, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::set_union_impl(first1, last1, first2, last2, result, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/shuffle.hpp b/sprout/algorithm/fit/shuffle.hpp index 0e33bd44..f52ad591 100644 --- a/sprout/algorithm/fit/shuffle.hpp +++ b/sprout/algorithm/fit/shuffle.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_SHUFFLE_HPP #include -#include -#include +#include +#include #include #include #include @@ -16,11 +16,11 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type shuffle_impl( Container const& cont, UniformRandomNumberGenerator&& g, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::shuffle(cont, sprout::forward(g))), + sprout::get_internal(sprout::fixed::shuffle(cont, sprout::forward(g))), offset, offset + sprout::size(cont) ); @@ -38,7 +38,7 @@ namespace sprout { return sprout::fit::detail::shuffle_impl( cont, sprout::forward(g), - sprout::fixed_begin_offset(cont) + sprout::internal_begin_offset(cont) ); } } // namespace fit diff --git a/sprout/algorithm/fit/shuffle_result.hpp b/sprout/algorithm/fit/shuffle_result.hpp index b54aa6c0..55730362 100644 --- a/sprout/algorithm/fit/shuffle_result.hpp +++ b/sprout/algorithm/fit/shuffle_result.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -19,7 +19,7 @@ namespace sprout { typename std::decay::type > shuffle_result_impl_1( Shuffled const& shuffled, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { typedef sprout::tuples::tuple< @@ -28,7 +28,7 @@ namespace sprout { > result_type; return result_type( sprout::sub_copy( - sprout::get_fixed(sprout::tuples::get<0>(shuffled)), + sprout::get_internal(sprout::tuples::get<0>(shuffled)), offset, offset + sprout::size(sprout::tuples::get<0>(shuffled)) ), @@ -42,7 +42,7 @@ namespace sprout { > shuffle_result_impl( Container const& cont, UniformRandomNumberGenerator&& g, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::fit::detail::shuffle_result_impl_1( @@ -66,7 +66,7 @@ namespace sprout { return sprout::fit::detail::shuffle_result_impl( cont, sprout::forward(g), - sprout::fixed_begin_offset(cont) + sprout::internal_begin_offset(cont) ); } } // namespace fit diff --git a/sprout/algorithm/fit/sort.hpp b/sprout/algorithm/fit/sort.hpp index 302cf8e0..c8f7577c 100644 --- a/sprout/algorithm/fit/sort.hpp +++ b/sprout/algorithm/fit/sort.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_SORT_HPP #include -#include -#include +#include +#include #include #include #include @@ -15,11 +15,11 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type sort_impl( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::sort(cont, comp)), + sprout::get_internal(sprout::fixed::sort(cont, comp)), offset, offset + sprout::size(cont) ); @@ -34,18 +34,18 @@ namespace sprout { Compare comp ) { - return sprout::fit::detail::sort_impl(cont, comp, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::sort_impl(cont, comp, sprout::internal_begin_offset(cont)); } namespace detail { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type sort_impl( Container const& cont, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::sort(cont)), + sprout::get_internal(sprout::fixed::sort(cont)), offset, offset + sprout::size(cont) ); @@ -59,7 +59,7 @@ namespace sprout { Container const& cont ) { - return sprout::fit::detail::sort_impl(cont, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::sort_impl(cont, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/sort_heap.hpp b/sprout/algorithm/fit/sort_heap.hpp index eb9cc6a2..6c39a4ec 100644 --- a/sprout/algorithm/fit/sort_heap.hpp +++ b/sprout/algorithm/fit/sort_heap.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_SORT_HEAP_HPP #include -#include -#include +#include +#include #include #include #include @@ -15,11 +15,11 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type sort_heap_impl( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::sort_heap(cont, comp)), + sprout::get_internal(sprout::fixed::sort_heap(cont, comp)), offset, offset + sprout::size(cont) ); @@ -34,18 +34,18 @@ namespace sprout { Compare comp ) { - return sprout::fit::detail::sort_heap_impl(cont, comp, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::sort_heap_impl(cont, comp, sprout::internal_begin_offset(cont)); } namespace detail { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type sort_heap_impl( Container const& cont, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::sort_heap(cont)), + sprout::get_internal(sprout::fixed::sort_heap(cont)), offset, offset + sprout::size(cont) ); @@ -59,7 +59,7 @@ namespace sprout { Container const& cont ) { - return sprout::fit::detail::sort_heap_impl(cont, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::sort_heap_impl(cont, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/stable_partition.hpp b/sprout/algorithm/fit/stable_partition.hpp index 37816378..c9026054 100644 --- a/sprout/algorithm/fit/stable_partition.hpp +++ b/sprout/algorithm/fit/stable_partition.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_STABLE_PARTITION_HPP #include -#include -#include +#include +#include #include #include #include @@ -16,11 +16,11 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type stable_partition_impl( Container const& cont, Predicate pred, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::stable_partition(cont, pred)), + sprout::get_internal(sprout::fixed::stable_partition(cont, pred)), offset, offset + sprout::size(cont) - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::count_if(sprout::begin(cont), sprout::end(cont), pred) ); @@ -35,7 +35,7 @@ namespace sprout { Predicate pred ) { - return sprout::fit::detail::stable_partition_impl(cont, pred, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::stable_partition_impl(cont, pred, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/stable_partition_copy.hpp b/sprout/algorithm/fit/stable_partition_copy.hpp index 0d92d073..04a9ad21 100644 --- a/sprout/algorithm/fit/stable_partition_copy.hpp +++ b/sprout/algorithm/fit/stable_partition_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_STABLE_PARTITION_COPY_HPP #include -#include -#include +#include +#include #include #include #include @@ -18,11 +18,11 @@ namespace sprout { InputIterator last, Result const& result, Predicate pred, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::stable_partition_copy(first, last, result, pred)), + sprout::get_internal(sprout::fixed::stable_partition_copy(first, last, result, pred)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::count_if(first, last, pred), sprout::size(result)) ); @@ -39,7 +39,7 @@ namespace sprout { Predicate pred ) { - return sprout::fit::detail::stable_partition_copy_impl(first, last, result, pred, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::stable_partition_copy_impl(first, last, result, pred, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/stable_sort.hpp b/sprout/algorithm/fit/stable_sort.hpp index 45a34391..1d997304 100644 --- a/sprout/algorithm/fit/stable_sort.hpp +++ b/sprout/algorithm/fit/stable_sort.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_STABLE_SORT_HPP #include -#include -#include +#include +#include #include #include #include @@ -15,11 +15,11 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type stable_sort_impl( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::stable_sort(cont, comp)), + sprout::get_internal(sprout::fixed::stable_sort(cont, comp)), offset, offset + sprout::size(cont) ); @@ -34,18 +34,18 @@ namespace sprout { Compare comp ) { - return sprout::fit::detail::stable_sort_impl(cont, comp, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::stable_sort_impl(cont, comp, sprout::internal_begin_offset(cont)); } namespace detail { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type stable_sort_impl( Container const& cont, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::stable_sort(cont)), + sprout::get_internal(sprout::fixed::stable_sort(cont)), offset, offset + sprout::size(cont) ); @@ -59,7 +59,7 @@ namespace sprout { Container const& cont ) { - return sprout::fit::detail::stable_sort_impl(cont, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::stable_sort_impl(cont, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/swap_element.hpp b/sprout/algorithm/fit/swap_element.hpp index 97ff1698..fddb4f00 100644 --- a/sprout/algorithm/fit/swap_element.hpp +++ b/sprout/algorithm/fit/swap_element.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_SWAP_ELEMENT_HPP #include -#include -#include +#include +#include #include #include #include @@ -15,13 +15,13 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type swap_element_impl( Container const& cont, - typename sprout::fixed_container_traits::const_iterator pos1, - typename sprout::fixed_container_traits::const_iterator pos2, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::const_iterator pos1, + typename sprout::container_traits::const_iterator pos2, + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::swap_element(cont, pos1, pos2)), + sprout::get_internal(sprout::fixed::swap_element(cont, pos1, pos2)), offset, offset + sprout::size(cont) ); @@ -33,11 +33,11 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type swap_element( Container const& cont, - typename sprout::fixed_container_traits::const_iterator pos1, - typename sprout::fixed_container_traits::const_iterator pos2 + typename sprout::container_traits::const_iterator pos1, + typename sprout::container_traits::const_iterator pos2 ) { - return sprout::fit::detail::swap_element_impl(cont, pos1, pos2, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::swap_element_impl(cont, pos1, pos2, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/swap_element_copy.hpp b/sprout/algorithm/fit/swap_element_copy.hpp index cc8ed704..78a3a244 100644 --- a/sprout/algorithm/fit/swap_element_copy.hpp +++ b/sprout/algorithm/fit/swap_element_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_SWAP_ELEMENT_COPY_HPP #include -#include -#include +#include +#include #include #include #include @@ -20,11 +20,11 @@ namespace sprout { Result const& result, InputIterator pos1, InputIterator pos2, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::swap_element_copy(first, last, result, pos1, pos2)), + sprout::get_internal(sprout::fixed::swap_element_copy(first, last, result, pos1, pos2)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last), sprout::size(result)) ); @@ -42,7 +42,7 @@ namespace sprout { InputIterator pos2 ) { - return sprout::fit::detail::swap_element_copy_impl(first, last, result, pos1, pos2, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::swap_element_copy_impl(first, last, result, pos1, pos2, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/transform.hpp b/sprout/algorithm/fit/transform.hpp index 5655b767..27beaf28 100644 --- a/sprout/algorithm/fit/transform.hpp +++ b/sprout/algorithm/fit/transform.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_TRANSFORM_HPP #include -#include -#include +#include +#include #include #include #include @@ -19,11 +19,11 @@ namespace sprout { Iterator last, Result const& result, UnaryOperation op, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::transform(first, last, result, op)), + sprout::get_internal(sprout::fixed::transform(first, last, result, op)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last), sprout::size(result)) ); @@ -40,7 +40,7 @@ namespace sprout { UnaryOperation op ) { - return sprout::fit::detail::transform_impl(first, last, result, op, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::transform_impl(first, last, result, op, sprout::internal_begin_offset(result)); } namespace detail { @@ -51,11 +51,11 @@ namespace sprout { Iterator2 first2, Result const& result, BinaryOperation op, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::transform(first1, last1, first2, result, op)), + sprout::get_internal(sprout::fixed::transform(first1, last1, first2, result, op)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first1, last1), sprout::size(result)) ); @@ -73,7 +73,7 @@ namespace sprout { BinaryOperation op ) { - return sprout::fit::detail::transform_impl(first1, last1, first2, result, op, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::transform_impl(first1, last1, first2, result, op, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/unique.hpp b/sprout/algorithm/fit/unique.hpp index ef10fe1b..ca976789 100644 --- a/sprout/algorithm/fit/unique.hpp +++ b/sprout/algorithm/fit/unique.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_UNIQUE_HPP #include -#include -#include +#include +#include #include #include #include @@ -15,11 +15,11 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type unique_impl( Container const& cont, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::unique(cont)), + sprout::get_internal(sprout::fixed::unique(cont)), offset, offset + sprout::size(cont) - sprout::detail::overlap_count(sprout::begin(cont), sprout::end(cont)) ); @@ -33,7 +33,7 @@ namespace sprout { Container const& cont ) { - return sprout::fit::detail::unique_impl(cont, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::unique_impl(cont, sprout::internal_begin_offset(cont)); } namespace detail { @@ -41,11 +41,11 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type unique_impl( Container const& cont, BinaryPredicate pred, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::unique(cont, pred)), + sprout::get_internal(sprout::fixed::unique(cont, pred)), offset, offset + sprout::size(cont) - sprout::detail::overlap_count(sprout::begin(cont), sprout::end(cont), pred) ); @@ -60,7 +60,7 @@ namespace sprout { BinaryPredicate pred ) { - return sprout::fit::detail::unique_impl(cont, pred, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::unique_impl(cont, pred, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fit/unique_copy.hpp b/sprout/algorithm/fit/unique_copy.hpp index cc7abb9c..bcc04b83 100644 --- a/sprout/algorithm/fit/unique_copy.hpp +++ b/sprout/algorithm/fit/unique_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIT_UNIQUE_COPY_HPP #include -#include -#include +#include +#include #include #include #include @@ -19,11 +19,11 @@ namespace sprout { InputIterator first, InputIterator last, Result const& result, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::unique_copy(first, last, result)), + sprout::get_internal(sprout::fixed::unique_copy(first, last, result)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last) - sprout::detail::overlap_count(first, last), sprout::size(result)) ); @@ -39,7 +39,7 @@ namespace sprout { Result const& result ) { - return sprout::fit::detail::unique_copy_impl(first, last, result, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::unique_copy_impl(first, last, result, sprout::internal_begin_offset(result)); } namespace detail { @@ -49,11 +49,11 @@ namespace sprout { InputIterator last, Result const& result, BinaryPredicate pred, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::unique_copy(first, last, result, pred)), + sprout::get_internal(sprout::fixed::unique_copy(first, last, result, pred)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last) - sprout::detail::overlap_count(first, last, pred), sprout::size(result)) ); @@ -70,7 +70,7 @@ namespace sprout { BinaryPredicate pred ) { - return sprout::fit::detail::unique_copy_impl(first, last, result, pred, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::unique_copy_impl(first, last, result, pred, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/algorithm/fixed/bogo_sort.hpp b/sprout/algorithm/fixed/bogo_sort.hpp index f952fcbf..7bde9017 100644 --- a/sprout/algorithm/fixed/bogo_sort.hpp +++ b/sprout/algorithm/fixed/bogo_sort.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -48,7 +48,7 @@ namespace sprout { sprout::end(cont), comp ) - ? sprout::clone(cont) + ? sprout::deep_copy(cont) : sprout::fixed::detail::bogo_sort_impl_1( sprout::fixed::shuffle_result( cont, @@ -87,7 +87,7 @@ namespace sprout { return sprout::fixed::detail::bogo_sort_impl( cont, sprout::forward(g), - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>() + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>() ); } } // namespace fixed diff --git a/sprout/algorithm/fixed/bogo_sort_result.hpp b/sprout/algorithm/fixed/bogo_sort_result.hpp index 3cc91703..1c233655 100644 --- a/sprout/algorithm/fixed/bogo_sort_result.hpp +++ b/sprout/algorithm/fixed/bogo_sort_result.hpp @@ -4,8 +4,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -60,7 +60,7 @@ namespace sprout { comp ) ? result_type( - sprout::clone(cont), + sprout::deep_copy(cont), sprout::forward(g) ) : sprout::fixed::detail::bogo_sort_result_impl_1( @@ -107,7 +107,7 @@ namespace sprout { return sprout::fixed::detail::bogo_sort_result_impl( cont, sprout::forward(g), - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>() + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>() ); } } // namespace fixed diff --git a/sprout/algorithm/fixed/copy.hpp b/sprout/algorithm/fixed/copy.hpp index 032a1f0c..d34f531e 100644 --- a/sprout/algorithm/fixed/copy.hpp +++ b/sprout/algorithm/fixed/copy.hpp @@ -5,8 +5,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -21,17 +21,17 @@ namespace sprout { RandomAccessIterator last, Result const& result, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::size_type input_size + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::size_type input_size ) { - return sprout::remake_clone( + return sprout::remake( result, sprout::size(result), (Indexes >= offset && Indexes < offset + size && Indexes < offset + input_size ? *sprout::next(first, Indexes - offset) - : *sprout::next(sprout::fixed_begin(result), Indexes) + : *sprout::next(sprout::internal_begin(result), Indexes) )... ); } @@ -47,35 +47,35 @@ namespace sprout { first, last, result, - typename sprout::index_range<0, sprout::fixed_container_traits::fixed_size>::type(), - sprout::fixed_begin_offset(result), + typename sprout::index_range<0, sprout::container_traits::static_size>::type(), + sprout::internal_begin_offset(result), sprout::size(result), NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last) ); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type copy_impl( InputIterator first, InputIterator last, Result const& result, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type copy_impl( InputIterator first, InputIterator last, Result const& result, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { diff --git a/sprout/algorithm/fixed/copy_backward.hpp b/sprout/algorithm/fixed/copy_backward.hpp index c4a1c80e..87302356 100644 --- a/sprout/algorithm/fixed/copy_backward.hpp +++ b/sprout/algorithm/fixed/copy_backward.hpp @@ -6,8 +6,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -22,17 +22,17 @@ namespace sprout { RandomAccessIterator last, Result const& result, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::size_type input_size + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::size_type input_size ) { - return sprout::remake_clone( + return sprout::remake( result, sprout::size(result), (Indexes < offset && Indexes + size >= static_cast(offset) && Indexes + input_size >= static_cast(offset) ? *sprout::next(last, Indexes - offset) - : *sprout::next(sprout::fixed_begin(result), Indexes) + : *sprout::next(sprout::internal_begin(result), Indexes) )... ); } @@ -48,35 +48,35 @@ namespace sprout { first, last, result, - typename sprout::index_range<0, sprout::fixed_container_traits::fixed_size>::type(), - sprout::fixed_end_offset(result), + typename sprout::index_range<0, sprout::container_traits::static_size>::type(), + sprout::internal_end_offset(result), sprout::size(result), NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last) ); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + 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, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + 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, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { diff --git a/sprout/algorithm/fixed/copy_if.hpp b/sprout/algorithm/fixed/copy_if.hpp index c1a389f1..f3c48efa 100644 --- a/sprout/algorithm/fixed/copy_if.hpp +++ b/sprout/algorithm/fixed/copy_if.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -14,29 +14,29 @@ namespace sprout { namespace detail { template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + 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, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + 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, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { diff --git a/sprout/algorithm/fixed/copy_n.hpp b/sprout/algorithm/fixed/copy_n.hpp index 2293021f..dda91c5b 100644 --- a/sprout/algorithm/fixed/copy_n.hpp +++ b/sprout/algorithm/fixed/copy_n.hpp @@ -4,8 +4,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -26,27 +26,27 @@ namespace sprout { } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + 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, - typename sprout::fixed_container_traits::difference_type offset, + typename sprout::container_traits::difference_type offset, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + 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, - typename sprout::fixed_container_traits::difference_type offset, + typename sprout::container_traits::difference_type offset, Args const&... args ) { diff --git a/sprout/algorithm/fixed/fill.hpp b/sprout/algorithm/fixed/fill.hpp index 2bdd60b7..2caaad61 100644 --- a/sprout/algorithm/fixed/fill.hpp +++ b/sprout/algorithm/fixed/fill.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include @@ -16,16 +16,16 @@ namespace sprout { Container const& cont, T const& value, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::size_type size + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::size_type size ) { - return sprout::remake_clone( + return sprout::remake( cont, sprout::size(cont), (Indexes >= offset && Indexes < offset + size ? value - : *sprout::next(sprout::fixed_begin(cont), Indexes) + : *sprout::next(sprout::internal_begin(cont), Indexes) )... ); } @@ -42,8 +42,8 @@ namespace sprout { return sprout::fixed::detail::fill_impl( cont, value, - typename sprout::index_range<0, sprout::fixed_container_traits::fixed_size>::type(), - sprout::fixed_begin_offset(cont), + typename sprout::index_range<0, sprout::container_traits::static_size>::type(), + 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 01fbcaec..e085cf87 100644 --- a/sprout/algorithm/fixed/fill_n.hpp +++ b/sprout/algorithm/fixed/fill_n.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include @@ -23,8 +23,8 @@ namespace sprout { return sprout::fixed::detail::fill_impl( cont, value, - typename sprout::index_range<0, sprout::fixed_container_traits::fixed_size>::type(), - sprout::fixed_begin_offset(cont), + typename sprout::index_range<0, sprout::container_traits::static_size>::type(), + sprout::internal_begin_offset(cont), n ); } diff --git a/sprout/algorithm/fixed/generate.hpp b/sprout/algorithm/fixed/generate.hpp index 2a670f61..84b319c3 100644 --- a/sprout/algorithm/fixed/generate.hpp +++ b/sprout/algorithm/fixed/generate.hpp @@ -4,8 +4,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -16,7 +16,7 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if< InitSize == 0, - typename sprout::fixed_container_traits::value_type + typename sprout::container_traits::value_type >::type call_gen( Generator gen, Args const&... args @@ -27,7 +27,7 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if< InitSize != 0 && InitSize == sizeof...(Args) + 1, - typename sprout::fixed_container_traits::value_type + typename sprout::container_traits::value_type >::type call_gen( Generator gen, Head const& head, @@ -39,7 +39,7 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if< InitSize != 0 && InitSize != sizeof...(Args) + 1, - typename sprout::fixed_container_traits::value_type + typename sprout::container_traits::value_type >::type call_gen( Generator gen, Head const& head, @@ -52,19 +52,19 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type generate_impl_drop( Container const& cont, Generator gen, - typename sprout::fixed_container_traits::size_type size + typename sprout::container_traits::size_type size ) { return sprout::detail::container_complate(cont); } template SPROUT_CONSTEXPR inline typename std::enable_if< - (sprout::fixed_container_traits::fixed_size >= sizeof...(Inits) + 1), + (sprout::container_traits::static_size >= sizeof...(Inits) + 1), typename sprout::fixed::result_of::algorithm::type >::type generate_impl_drop( Container const& cont, Generator gen, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Head const& head, Inits const&... inits ) @@ -76,12 +76,12 @@ namespace sprout { } template SPROUT_CONSTEXPR inline typename std::enable_if< - (sprout::fixed_container_traits::fixed_size < sizeof...(Inits) + 1), + (sprout::container_traits::static_size < sizeof...(Inits) + 1), typename sprout::fixed::result_of::algorithm::type >::type generate_impl_drop( Container const& cont, Generator gen, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Head const& head, Inits const&... inits ) @@ -90,25 +90,25 @@ namespace sprout { } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type generate_impl_1( Container const& cont, Generator gen, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { - return sprout::remake_clone(cont, sprout::size(cont), args...); + return sprout::remake(cont, sprout::size(cont), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type generate_impl_1( Container const& cont, Generator gen, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { @@ -119,12 +119,12 @@ namespace sprout { } template SPROUT_CONSTEXPR inline typename std::enable_if< - (sprout::fixed_container_traits::fixed_size > sizeof...(Inits)), + (sprout::container_traits::static_size > sizeof...(Inits)), typename sprout::fixed::result_of::algorithm::type >::type generate_impl( Container const& cont, Generator gen, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Inits const&... inits ) { @@ -135,12 +135,12 @@ namespace sprout { } template SPROUT_CONSTEXPR inline typename std::enable_if< - (sprout::fixed_container_traits::fixed_size <= sizeof...(Inits)), + (sprout::container_traits::static_size <= sizeof...(Inits)), typename sprout::fixed::result_of::algorithm::type >::type generate_impl( Container const& cont, Generator gen, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Inits const&... inits ) { diff --git a/sprout/algorithm/fixed/generate_n.hpp b/sprout/algorithm/fixed/generate_n.hpp index e97992f9..6bd2381a 100644 --- a/sprout/algorithm/fixed/generate_n.hpp +++ b/sprout/algorithm/fixed/generate_n.hpp @@ -2,7 +2,7 @@ #define SPROUT_ALGORITHM_FIXED_GENERATE_N_HPP #include -#include +#include #include #include diff --git a/sprout/algorithm/fixed/inplace_merge.hpp b/sprout/algorithm/fixed/inplace_merge.hpp index 526971d8..6ae35bf5 100644 --- a/sprout/algorithm/fixed/inplace_merge.hpp +++ b/sprout/algorithm/fixed/inplace_merge.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIXED_INPLACE_MERGE_HPP #include -#include -#include +#include +#include #include #include @@ -15,7 +15,7 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type inplace_merge( Container const& cont, - typename sprout::fixed_container_traits::const_iterator middle, + typename sprout::container_traits::const_iterator middle, Compare comp ) { @@ -34,7 +34,7 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type inplace_merge( Container const& cont, - typename sprout::fixed_container_traits::const_iterator middle + typename sprout::container_traits::const_iterator middle ) { return sprout::fixed::merge( diff --git a/sprout/algorithm/fixed/make_heap.hpp b/sprout/algorithm/fixed/make_heap.hpp index c373b3a3..1f6eb674 100644 --- a/sprout/algorithm/fixed/make_heap.hpp +++ b/sprout/algorithm/fixed/make_heap.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIXED_MAKE_HEAP_HPP #include -#include -#include +#include +#include #include #include #include @@ -16,30 +16,30 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type make_heap_impl( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::difference_type size, - typename sprout::fixed_container_traits::difference_type n = 0, - typename sprout::fixed_container_traits::difference_type l = 1, - typename sprout::fixed_container_traits::difference_type r = 2 + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::difference_type size, + typename sprout::container_traits::difference_type n = 0, + typename sprout::container_traits::difference_type l = 1, + typename sprout::container_traits::difference_type r = 2 ); template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type make_heap_impl_1( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::difference_type size, - typename sprout::fixed_container_traits::difference_type n, - typename sprout::fixed_container_traits::difference_type l, - typename sprout::fixed_container_traits::difference_type r + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::difference_type size, + typename sprout::container_traits::difference_type n, + typename sprout::container_traits::difference_type l, + typename sprout::container_traits::difference_type r ) { - return comp(*sprout::next(sprout::fixed_begin(cont), offset + l), *sprout::next(sprout::fixed_begin(cont), offset + r)) - ? comp(*sprout::next(sprout::fixed_begin(cont), offset + n), *sprout::next(sprout::fixed_begin(cont), offset + r)) + return comp(*sprout::next(sprout::internal_begin(cont), offset + l), *sprout::next(sprout::internal_begin(cont), offset + r)) + ? comp(*sprout::next(sprout::internal_begin(cont), offset + n), *sprout::next(sprout::internal_begin(cont), offset + r)) ? sprout::fixed::detail::make_heap_impl( sprout::fixed::swap_element( cont, - sprout::next(sprout::fixed_begin(cont), offset + n), - sprout::next(sprout::fixed_begin(cont), offset + r) + sprout::next(sprout::internal_begin(cont), offset + n), + sprout::next(sprout::internal_begin(cont), offset + r) ), comp, offset, @@ -48,13 +48,13 @@ namespace sprout { r * 2 + 1, r * 2 + 2 ) - : sprout::clone(cont) - : comp(*sprout::next(sprout::fixed_begin(cont), offset + n), *sprout::next(sprout::fixed_begin(cont), offset + l)) + : sprout::deep_copy(cont) + : comp(*sprout::next(sprout::internal_begin(cont), offset + n), *sprout::next(sprout::internal_begin(cont), offset + l)) ? sprout::fixed::detail::make_heap_impl( sprout::fixed::swap_element( cont, - sprout::next(sprout::fixed_begin(cont), offset + n), - sprout::next(sprout::fixed_begin(cont), offset + l) + sprout::next(sprout::internal_begin(cont), offset + n), + sprout::next(sprout::internal_begin(cont), offset + l) ), comp, offset, @@ -63,30 +63,30 @@ namespace sprout { l * 2 + 1, l * 2 + 2 ) - : sprout::clone(cont) + : sprout::deep_copy(cont) ; } template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type make_heap_impl( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::difference_type size, - typename sprout::fixed_container_traits::difference_type n, - typename sprout::fixed_container_traits::difference_type l, - typename sprout::fixed_container_traits::difference_type r + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::difference_type size, + typename sprout::container_traits::difference_type n, + typename sprout::container_traits::difference_type l, + typename sprout::container_traits::difference_type r ) { return r > size - ? sprout::clone(cont) + ? sprout::deep_copy(cont) : r == size - ? comp(*sprout::next(sprout::fixed_begin(cont), offset + n), *sprout::next(sprout::fixed_begin(cont), offset + l)) + ? comp(*sprout::next(sprout::internal_begin(cont), offset + n), *sprout::next(sprout::internal_begin(cont), offset + l)) ? sprout::fixed::swap_element( cont, - sprout::next(sprout::fixed_begin(cont), offset + n), - sprout::next(sprout::fixed_begin(cont), offset + l) + sprout::next(sprout::internal_begin(cont), offset + n), + sprout::next(sprout::internal_begin(cont), offset + l) ) - : sprout::clone(cont) + : sprout::deep_copy(cont) : sprout::fixed::detail::make_heap_impl_1( sprout::fixed::detail::make_heap_impl( sprout::fixed::detail::make_heap_impl(cont, comp, offset, size, l, l * 2 + 1, l * 2 + 2), @@ -119,7 +119,7 @@ namespace sprout { return sprout::fixed::detail::make_heap_impl( cont, comp, - sprout::fixed_begin_offset(cont), + sprout::internal_begin_offset(cont), sprout::size(cont) ); } @@ -133,8 +133,8 @@ namespace sprout { { return sprout::fixed::detail::make_heap_impl( cont, - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), - sprout::fixed_begin_offset(cont), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::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 51815628..758f991b 100644 --- a/sprout/algorithm/fixed/make_partial_heap.hpp +++ b/sprout/algorithm/fixed/make_partial_heap.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIXED_MAKE_PARTIAL_HEAP_HPP #include -#include -#include +#include +#include #include #include #include @@ -19,20 +19,20 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type make_partial_heap_impl_1( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::difference_type size, - typename sprout::fixed_container_traits::difference_type middle_size, - typename sprout::fixed_container_traits::difference_type n + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::difference_type size, + typename sprout::container_traits::difference_type middle_size, + typename sprout::container_traits::difference_type n ) { return n < size - ? comp(*sprout::next(sprout::fixed_begin(cont), offset + n), *sprout::next(sprout::fixed_begin(cont), offset)) + ? comp(*sprout::next(sprout::internal_begin(cont), offset + n), *sprout::next(sprout::internal_begin(cont), offset)) ? sprout::fixed::detail::make_partial_heap_impl_1( sprout::fixed::detail::pop_heap_impl( sprout::fixed::swap_element( cont, - sprout::next(sprout::fixed_begin(cont), offset + n), - sprout::next(sprout::fixed_begin(cont), offset) + sprout::next(sprout::internal_begin(cont), offset + n), + sprout::next(sprout::internal_begin(cont), offset) ), comp, offset, @@ -45,16 +45,16 @@ namespace sprout { n + 1 ) : sprout::fixed::detail::make_partial_heap_impl_1(cont, comp, offset, size, middle_size, n + 1) - : sprout::clone(cont) + : sprout::deep_copy(cont) ; } template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type make_partial_heap_impl( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::difference_type size, - typename sprout::fixed_container_traits::difference_type middle_size + 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( @@ -73,14 +73,14 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type make_partial_heap( Container const& cont, - typename sprout::fixed_container_traits::const_iterator middle, + typename sprout::container_traits::const_iterator middle, Compare comp ) { return sprout::fixed::detail::make_partial_heap_impl( cont, comp, - sprout::fixed_begin_offset(cont), + sprout::internal_begin_offset(cont), sprout::size(cont), NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), middle) ); @@ -91,13 +91,13 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type make_partial_heap( Container const& cont, - typename sprout::fixed_container_traits::const_iterator middle + typename sprout::container_traits::const_iterator middle ) { return sprout::fixed::detail::make_partial_heap_impl( cont, - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), - sprout::fixed_begin_offset(cont), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), + sprout::internal_begin_offset(cont), sprout::size(cont), NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), middle) ); diff --git a/sprout/algorithm/fixed/merge.hpp b/sprout/algorithm/fixed/merge.hpp index ae8bc5b4..67295206 100644 --- a/sprout/algorithm/fixed/merge.hpp +++ b/sprout/algorithm/fixed/merge.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -15,7 +15,7 @@ namespace sprout { namespace detail { template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type merge_impl( InputIterator1 first1, @@ -24,15 +24,15 @@ namespace sprout { InputIterator2 last2, Result const& result, Compare comp, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type merge_impl( InputIterator1 first1, @@ -41,7 +41,7 @@ namespace sprout { InputIterator2 last2, Result const& result, Compare comp, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { @@ -100,7 +100,7 @@ namespace sprout { first2, last2, result, - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), sprout::size(result) ); } diff --git a/sprout/algorithm/fixed/nth_element.hpp b/sprout/algorithm/fixed/nth_element.hpp index eb74512c..36db22c2 100644 --- a/sprout/algorithm/fixed/nth_element.hpp +++ b/sprout/algorithm/fixed/nth_element.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIXED_NTH_ELEMENT_HPP #include -#include -#include +#include +#include #include #include #include @@ -17,23 +17,23 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type nth_element_impl_1( Container const& cont, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::difference_type nth_size + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::difference_type nth_size ) { return sprout::fixed::swap_element( cont, - sprout::next(sprout::fixed_begin(cont), offset), - sprout::next(sprout::fixed_begin(cont), offset + nth_size) + sprout::next(sprout::internal_begin(cont), offset), + sprout::next(sprout::internal_begin(cont), offset + nth_size) ); } template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type nth_element_impl( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::difference_type size, - typename sprout::fixed_container_traits::difference_type nth_size + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::difference_type size, + typename sprout::container_traits::difference_type nth_size ) { return sprout::fixed::detail::nth_element_impl_1( @@ -49,14 +49,14 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type nth_element( Container const& cont, - typename sprout::fixed_container_traits::const_iterator nth, + typename sprout::container_traits::const_iterator nth, Compare comp ) { return sprout::fixed::detail::nth_element_impl( cont, comp, - sprout::fixed_begin_offset(cont), + sprout::internal_begin_offset(cont), sprout::size(cont), NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), nth) ); @@ -67,13 +67,13 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type nth_element( Container const& cont, - typename sprout::fixed_container_traits::const_iterator nth + typename sprout::container_traits::const_iterator nth ) { return sprout::fixed::detail::nth_element_impl( cont, - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), - sprout::fixed_begin_offset(cont), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), + sprout::internal_begin_offset(cont), sprout::size(cont), NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), nth) ); diff --git a/sprout/algorithm/fixed/partial_sort.hpp b/sprout/algorithm/fixed/partial_sort.hpp index ed9c948c..5b997475 100644 --- a/sprout/algorithm/fixed/partial_sort.hpp +++ b/sprout/algorithm/fixed/partial_sort.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIXED_PARTIAL_SORT_HPP #include -#include -#include +#include +#include #include #include #include @@ -17,9 +17,9 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type partial_sort_impl( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::difference_type size, - typename sprout::fixed_container_traits::difference_type middle_size + 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( @@ -36,14 +36,14 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type partial_sort( Container const& cont, - typename sprout::fixed_container_traits::const_iterator middle, + typename sprout::container_traits::const_iterator middle, Compare comp ) { return sprout::fixed::detail::partial_sort_impl( cont, comp, - sprout::fixed_begin_offset(cont), + sprout::internal_begin_offset(cont), sprout::size(cont), NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), middle) ); @@ -54,13 +54,13 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type partial_sort( Container const& cont, - typename sprout::fixed_container_traits::const_iterator middle + typename sprout::container_traits::const_iterator middle ) { return sprout::fixed::detail::partial_sort_impl( cont, - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), - sprout::fixed_begin_offset(cont), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), + sprout::internal_begin_offset(cont), sprout::size(cont), NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), middle) ); diff --git a/sprout/algorithm/fixed/partition.hpp b/sprout/algorithm/fixed/partition.hpp index 2b973446..7411c59e 100644 --- a/sprout/algorithm/fixed/partition.hpp +++ b/sprout/algorithm/fixed/partition.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIXED_PARTITION_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/algorithm/fixed/partition_copy.hpp b/sprout/algorithm/fixed/partition_copy.hpp index da2f9a84..8971414f 100644 --- a/sprout/algorithm/fixed/partition_copy.hpp +++ b/sprout/algorithm/fixed/partition_copy.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -14,29 +14,29 @@ namespace sprout { namespace detail { template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + 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, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + 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, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { diff --git a/sprout/algorithm/fixed/pop_heap.hpp b/sprout/algorithm/fixed/pop_heap.hpp index 6ddd02da..91d01156 100644 --- a/sprout/algorithm/fixed/pop_heap.hpp +++ b/sprout/algorithm/fixed/pop_heap.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIXED_POP_HEAP_HPP #include -#include -#include +#include +#include #include #include #include @@ -16,20 +16,20 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type pop_heap_impl( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::difference_type size, - typename sprout::fixed_container_traits::difference_type n = 0, - typename sprout::fixed_container_traits::difference_type l = 1, - typename sprout::fixed_container_traits::difference_type r = 2 + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::difference_type size, + typename sprout::container_traits::difference_type n = 0, + typename sprout::container_traits::difference_type l = 1, + typename sprout::container_traits::difference_type r = 2 ) { - return r < size && comp(*sprout::next(sprout::fixed_begin(cont), offset + l), *sprout::next(sprout::fixed_begin(cont), offset + r)) - ? comp(*sprout::next(sprout::fixed_begin(cont), offset + n), *sprout::next(sprout::fixed_begin(cont), offset + r)) + return r < size && comp(*sprout::next(sprout::internal_begin(cont), offset + l), *sprout::next(sprout::internal_begin(cont), offset + r)) + ? comp(*sprout::next(sprout::internal_begin(cont), offset + n), *sprout::next(sprout::internal_begin(cont), offset + r)) ? sprout::fixed::detail::pop_heap_impl( sprout::fixed::swap_element( cont, - sprout::next(sprout::fixed_begin(cont), offset + n), - sprout::next(sprout::fixed_begin(cont), offset + r) + sprout::next(sprout::internal_begin(cont), offset + n), + sprout::next(sprout::internal_begin(cont), offset + r) ), comp, offset, @@ -38,14 +38,14 @@ namespace sprout { r * 2 + 1, r * 2 + 2 ) - : sprout::clone(cont) + : sprout::deep_copy(cont) : l < size - ? comp(*sprout::next(sprout::fixed_begin(cont), offset + n), *sprout::next(sprout::fixed_begin(cont), offset + l)) + ? comp(*sprout::next(sprout::internal_begin(cont), offset + n), *sprout::next(sprout::internal_begin(cont), offset + l)) ? sprout::fixed::detail::pop_heap_impl( sprout::fixed::swap_element( cont, - sprout::next(sprout::fixed_begin(cont), offset + n), - sprout::next(sprout::fixed_begin(cont), offset + l) + sprout::next(sprout::internal_begin(cont), offset + n), + sprout::next(sprout::internal_begin(cont), offset + l) ), comp, offset, @@ -54,8 +54,8 @@ namespace sprout { l * 2 + 1, l * 2 + 2 ) - : sprout::clone(cont) - : sprout::clone(cont) + : sprout::deep_copy(cont) + : sprout::deep_copy(cont) ; } } // namespace detail @@ -71,7 +71,7 @@ namespace sprout { return sprout::fixed::detail::pop_heap_impl( sprout::fixed::swap_element(cont, sprout::begin(cont), sprout::end(cont) - 1), comp, - sprout::fixed_begin_offset(cont), + sprout::internal_begin_offset(cont), sprout::size(cont) - 1 ); } @@ -85,8 +85,8 @@ namespace sprout { { return sprout::fixed::detail::pop_heap_impl( sprout::fixed::swap_element(cont, sprout::begin(cont), sprout::end(cont) - 1), - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), - sprout::fixed_begin_offset(cont), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), + sprout::internal_begin_offset(cont), sprout::size(cont) - 1 ); } diff --git a/sprout/algorithm/fixed/push_heap.hpp b/sprout/algorithm/fixed/push_heap.hpp index 8a84ec2a..3ff59c8e 100644 --- a/sprout/algorithm/fixed/push_heap.hpp +++ b/sprout/algorithm/fixed/push_heap.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIXED_PUSH_HEAP_HPP #include -#include -#include +#include +#include #include #include #include @@ -16,22 +16,22 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type push_heap_impl( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::difference_type n + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::difference_type n ) { - return n != 0 && comp(*sprout::next(sprout::fixed_begin(cont), offset + (n - 1) / 2), *sprout::next(sprout::fixed_begin(cont), offset + n)) + return n != 0 && comp(*sprout::next(sprout::internal_begin(cont), offset + (n - 1) / 2), *sprout::next(sprout::internal_begin(cont), offset + n)) ? sprout::fixed::detail::push_heap_impl( sprout::fixed::swap_element( cont, - sprout::next(sprout::fixed_begin(cont), offset + (n - 1) / 2), - sprout::next(sprout::fixed_begin(cont), offset + n) + sprout::next(sprout::internal_begin(cont), offset + (n - 1) / 2), + sprout::next(sprout::internal_begin(cont), offset + n) ), comp, offset, (n - 1) / 2 ) - : sprout::clone(cont) + : sprout::deep_copy(cont) ; } } // namespace detail @@ -47,7 +47,7 @@ namespace sprout { return sprout::fixed::detail::push_heap_impl( cont, comp, - sprout::fixed_begin_offset(cont), + sprout::internal_begin_offset(cont), sprout::size(cont) - 1 ); } @@ -61,8 +61,8 @@ namespace sprout { { return sprout::fixed::detail::push_heap_impl( cont, - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), - sprout::fixed_begin_offset(cont), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), + sprout::internal_begin_offset(cont), sprout::size(cont) - 1 ); } diff --git a/sprout/algorithm/fixed/remove.hpp b/sprout/algorithm/fixed/remove.hpp index 1189c224..14d2e041 100644 --- a/sprout/algorithm/fixed/remove.hpp +++ b/sprout/algorithm/fixed/remove.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIXED_REMOVE_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/algorithm/fixed/remove_copy.hpp b/sprout/algorithm/fixed/remove_copy.hpp index bf49246f..7a90d5e5 100644 --- a/sprout/algorithm/fixed/remove_copy.hpp +++ b/sprout/algorithm/fixed/remove_copy.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -14,29 +14,29 @@ namespace sprout { namespace detail { template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + 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, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + 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, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { diff --git a/sprout/algorithm/fixed/remove_copy_if.hpp b/sprout/algorithm/fixed/remove_copy_if.hpp index 5cd75d7c..794751c6 100644 --- a/sprout/algorithm/fixed/remove_copy_if.hpp +++ b/sprout/algorithm/fixed/remove_copy_if.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -14,29 +14,29 @@ namespace sprout { namespace detail { template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + 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, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + 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, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { diff --git a/sprout/algorithm/fixed/remove_if.hpp b/sprout/algorithm/fixed/remove_if.hpp index 0348397f..3749bab7 100644 --- a/sprout/algorithm/fixed/remove_if.hpp +++ b/sprout/algorithm/fixed/remove_if.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIXED_REMOVE_IF_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/algorithm/fixed/replace.hpp b/sprout/algorithm/fixed/replace.hpp index e2ddf1df..54b0117b 100644 --- a/sprout/algorithm/fixed/replace.hpp +++ b/sprout/algorithm/fixed/replace.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIXED_REPLACE_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/algorithm/fixed/replace_copy.hpp b/sprout/algorithm/fixed/replace_copy.hpp index e7468f71..ce21c63e 100644 --- a/sprout/algorithm/fixed/replace_copy.hpp +++ b/sprout/algorithm/fixed/replace_copy.hpp @@ -5,8 +5,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -24,17 +24,17 @@ namespace sprout { T const& old_value, T const& new_value, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::size_type input_size + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::size_type input_size ) { - return sprout::remake_clone( + return sprout::remake( result, sprout::size(result), (Indexes >= offset && Indexes < offset + size && Indexes < offset + input_size ? NS_SSCRISK_CEL_OR_SPROUT_DETAIL::equal_to()(*sprout::next(first, Indexes - offset), old_value) ? new_value : *sprout::next(first, Indexes - offset) - : *sprout::next(sprout::fixed_begin(result), Indexes) + : *sprout::next(sprout::internal_begin(result), Indexes) )... ); } @@ -54,15 +54,15 @@ namespace sprout { result, old_value, new_value, - typename sprout::index_range<0, sprout::fixed_container_traits::fixed_size>::type(), - sprout::fixed_begin_offset(result), + typename sprout::index_range<0, sprout::container_traits::static_size>::type(), + sprout::internal_begin_offset(result), sprout::size(result), NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last) ); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type replace_copy_impl( InputIterator first, @@ -70,15 +70,15 @@ namespace sprout { Result const& result, T const& old_value, T const& new_value, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type replace_copy_impl( InputIterator first, @@ -86,7 +86,7 @@ namespace sprout { Result const& result, T const& old_value, T const& new_value, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { diff --git a/sprout/algorithm/fixed/replace_copy_if.hpp b/sprout/algorithm/fixed/replace_copy_if.hpp index e43b2cc7..abad49fc 100644 --- a/sprout/algorithm/fixed/replace_copy_if.hpp +++ b/sprout/algorithm/fixed/replace_copy_if.hpp @@ -5,8 +5,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -23,17 +23,17 @@ namespace sprout { Predicate pred, T const& new_value, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::size_type input_size + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::size_type input_size ) { - return sprout::remake_clone( + return sprout::remake( result, sprout::size(result), (Indexes >= offset && Indexes < offset + size && Indexes < offset + input_size ? pred(*sprout::next(first, Indexes - offset)) ? new_value : *sprout::next(first, Indexes - offset) - : *sprout::next(sprout::fixed_begin(result), Indexes) + : *sprout::next(sprout::internal_begin(result), Indexes) )... ); } @@ -53,15 +53,15 @@ namespace sprout { result, pred, new_value, - typename sprout::index_range<0, sprout::fixed_container_traits::fixed_size>::type(), - sprout::fixed_begin_offset(result), + typename sprout::index_range<0, sprout::container_traits::static_size>::type(), + sprout::internal_begin_offset(result), sprout::size(result), NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last) ); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type replace_copy_if_impl( InputIterator first, @@ -69,15 +69,15 @@ namespace sprout { Result const& result, Predicate pred, T const& new_value, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type replace_copy_if_impl( InputIterator first, @@ -85,7 +85,7 @@ namespace sprout { Result const& result, Predicate pred, T const& new_value, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { diff --git a/sprout/algorithm/fixed/replace_if.hpp b/sprout/algorithm/fixed/replace_if.hpp index 82aee6cb..d8d1f3e6 100644 --- a/sprout/algorithm/fixed/replace_if.hpp +++ b/sprout/algorithm/fixed/replace_if.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIXED_REPLACE_IF_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/algorithm/fixed/result_of.hpp b/sprout/algorithm/fixed/result_of.hpp index 34900b19..a0bd6ef8 100644 --- a/sprout/algorithm/fixed/result_of.hpp +++ b/sprout/algorithm/fixed/result_of.hpp @@ -2,7 +2,7 @@ #define SPROUT_ALGORITHM_FIXED_RESULT_OF_HPP #include -#include +#include namespace sprout { namespace fixed { @@ -13,7 +13,7 @@ namespace sprout { template struct algorithm { public: - typedef typename sprout::fixed_container_traits::clone_type type; + typedef typename sprout::container_construct_traits::copied_type type; }; } // namespace result_of } // namespace fixed diff --git a/sprout/algorithm/fixed/reverse.hpp b/sprout/algorithm/fixed/reverse.hpp index 99c93128..aa3af75e 100644 --- a/sprout/algorithm/fixed/reverse.hpp +++ b/sprout/algorithm/fixed/reverse.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIXED_REVERSE_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/algorithm/fixed/reverse_copy.hpp b/sprout/algorithm/fixed/reverse_copy.hpp index d09a9d72..18d5be96 100644 --- a/sprout/algorithm/fixed/reverse_copy.hpp +++ b/sprout/algorithm/fixed/reverse_copy.hpp @@ -5,8 +5,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -21,17 +21,17 @@ namespace sprout { RandomAccessIterator last, Result const& result, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::size_type input_size + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::size_type input_size ) { - return sprout::remake_clone( + return sprout::remake( result, sprout::size(result), (Indexes >= offset && Indexes < offset + size && Indexes < offset + input_size ? *sprout::prev(last, 1 + Indexes - offset) - : *sprout::next(sprout::fixed_begin(result), Indexes) + : *sprout::next(sprout::internal_begin(result), Indexes) )... ); } @@ -47,35 +47,35 @@ namespace sprout { first, last, result, - typename sprout::index_range<0, sprout::fixed_container_traits::fixed_size>::type(), - sprout::fixed_begin_offset(result), + typename sprout::index_range<0, sprout::container_traits::static_size>::type(), + sprout::internal_begin_offset(result), sprout::size(result), NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last) ); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + 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, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + 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, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { diff --git a/sprout/algorithm/fixed/rotate.hpp b/sprout/algorithm/fixed/rotate.hpp index fa39394d..602c84d9 100644 --- a/sprout/algorithm/fixed/rotate.hpp +++ b/sprout/algorithm/fixed/rotate.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIXED_ROTATE_HPP #include -#include -#include +#include +#include #include #include @@ -15,7 +15,7 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type rotate( Container const& cont, - typename sprout::fixed_container_traits::const_iterator middle + typename sprout::container_traits::const_iterator middle ) { return sprout::fixed::rotate_copy(sprout::begin(cont), middle, sprout::end(cont), cont); diff --git a/sprout/algorithm/fixed/rotate_copy.hpp b/sprout/algorithm/fixed/rotate_copy.hpp index b44f5410..892c1f0a 100644 --- a/sprout/algorithm/fixed/rotate_copy.hpp +++ b/sprout/algorithm/fixed/rotate_copy.hpp @@ -5,8 +5,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -22,12 +22,12 @@ namespace sprout { RandomAccessIterator last, Result const& result, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::size_type input_size + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::size_type input_size ) { - return sprout::remake_clone( + return sprout::remake( result, sprout::size(result), (Indexes >= offset && Indexes < offset + size && Indexes < offset + input_size @@ -35,7 +35,7 @@ namespace sprout { ? *sprout::next(middle, Indexes - offset) : *sprout::prev(sprout::next(first, Indexes - offset), NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, middle)) ) - : *sprout::next(sprout::fixed_begin(result), Indexes) + : *sprout::next(sprout::internal_begin(result), Indexes) )... ); } @@ -53,35 +53,35 @@ namespace sprout { middle, last, result, - typename sprout::index_range<0, sprout::fixed_container_traits::fixed_size>::type(), - sprout::fixed_begin_offset(result), + typename sprout::index_range<0, sprout::container_traits::static_size>::type(), + sprout::internal_begin_offset(result), sprout::size(result), NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last) ); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type rotate_copy_impl_1( ForwardIterator first, ForwardIterator last, Result const& result, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type rotate_copy_impl_1( ForwardIterator first, ForwardIterator last, Result const& result, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { @@ -92,7 +92,7 @@ namespace sprout { } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type rotate_copy_impl( ForwardIterator first, @@ -100,15 +100,15 @@ namespace sprout { ForwardIterator middle_first, ForwardIterator last, Result const& result, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type rotate_copy_impl( ForwardIterator first, @@ -116,7 +116,7 @@ namespace sprout { ForwardIterator middle_first, ForwardIterator last, Result const& result, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { diff --git a/sprout/algorithm/fixed/set_difference.hpp b/sprout/algorithm/fixed/set_difference.hpp index 0d07e281..6200eb95 100644 --- a/sprout/algorithm/fixed/set_difference.hpp +++ b/sprout/algorithm/fixed/set_difference.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -15,7 +15,7 @@ namespace sprout { namespace detail { template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type set_difference_impl( InputIterator1 first1, @@ -24,15 +24,15 @@ namespace sprout { InputIterator2 last2, Result const& result, Compare comp, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type set_difference_impl( InputIterator1 first1, @@ -41,7 +41,7 @@ namespace sprout { InputIterator2 last2, Result const& result, Compare comp, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { @@ -102,7 +102,7 @@ namespace sprout { first2, last2, result, - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), sprout::size(result) ); } diff --git a/sprout/algorithm/fixed/set_intersection.hpp b/sprout/algorithm/fixed/set_intersection.hpp index e82ab1b2..255ad774 100644 --- a/sprout/algorithm/fixed/set_intersection.hpp +++ b/sprout/algorithm/fixed/set_intersection.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -15,7 +15,7 @@ namespace sprout { namespace detail { template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type set_intersection_impl( InputIterator1 first1, @@ -24,15 +24,15 @@ namespace sprout { InputIterator2 last2, Result const& result, Compare comp, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type set_intersection_impl( InputIterator1 first1, @@ -41,7 +41,7 @@ namespace sprout { InputIterator2 last2, Result const& result, Compare comp, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { @@ -102,7 +102,7 @@ namespace sprout { first2, last2, result, - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::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 2312e11b..03c8ab39 100644 --- a/sprout/algorithm/fixed/set_symmetric_difference.hpp +++ b/sprout/algorithm/fixed/set_symmetric_difference.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -15,7 +15,7 @@ namespace sprout { namespace detail { template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type set_symmetric_difference_impl( InputIterator1 first1, @@ -24,15 +24,15 @@ namespace sprout { InputIterator2 last2, Result const& result, Compare comp, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type set_symmetric_difference_impl( InputIterator1 first1, @@ -41,7 +41,7 @@ namespace sprout { InputIterator2 last2, Result const& result, Compare comp, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { @@ -102,7 +102,7 @@ namespace sprout { first2, last2, result, - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), sprout::size(result) ); } diff --git a/sprout/algorithm/fixed/set_union.hpp b/sprout/algorithm/fixed/set_union.hpp index a7f9dfc0..4286cca0 100644 --- a/sprout/algorithm/fixed/set_union.hpp +++ b/sprout/algorithm/fixed/set_union.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -15,7 +15,7 @@ namespace sprout { namespace detail { template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type set_union_impl( InputIterator1 first1, @@ -24,15 +24,15 @@ namespace sprout { InputIterator2 last2, Result const& result, Compare comp, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type set_union_impl( InputIterator1 first1, @@ -41,7 +41,7 @@ namespace sprout { InputIterator2 last2, Result const& result, Compare comp, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { @@ -102,7 +102,7 @@ namespace sprout { first2, last2, result, - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), sprout::size(result) ); } diff --git a/sprout/algorithm/fixed/shuffle.hpp b/sprout/algorithm/fixed/shuffle.hpp index a2d2f9e2..55006699 100644 --- a/sprout/algorithm/fixed/shuffle.hpp +++ b/sprout/algorithm/fixed/shuffle.hpp @@ -7,8 +7,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -59,16 +59,16 @@ namespace sprout { Container const& cont, sprout::index_tuple, Shuffled const& shuffled, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::size_type size + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::size_type size ) { - return sprout::remake_clone( + return sprout::remake( cont, sprout::size(cont), (Indexes >= offset && Indexes < offset + size ? *sprout::next(sprout::begin(cont), shuffled[Indexes - offset]) - : *sprout::next(sprout::fixed_begin(cont), Indexes) + : *sprout::next(sprout::internal_begin(cont), Indexes) )... ); } @@ -77,14 +77,14 @@ namespace sprout { Container const& cont, sprout::index_tuple indexes, UniformRandomNumberGenerator&& g, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::size_type size + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::size_type size ) { return sprout::fixed::detail::shuffle_impl_1( cont, indexes, - sprout::fixed::detail::make_shuffle_indexes::fixed_size>( + sprout::fixed::detail::make_shuffle_indexes::static_size>( size, sprout::forward(g) ), @@ -104,9 +104,9 @@ namespace sprout { { return sprout::fixed::detail::shuffle_impl( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::fixed_size>::type(), + typename sprout::index_range<0, sprout::container_traits::static_size>::type(), sprout::forward(g), - sprout::fixed_begin_offset(cont), + sprout::internal_begin_offset(cont), sprout::size(cont) ); } diff --git a/sprout/algorithm/fixed/shuffle_result.hpp b/sprout/algorithm/fixed/shuffle_result.hpp index bd666985..269e5529 100644 --- a/sprout/algorithm/fixed/shuffle_result.hpp +++ b/sprout/algorithm/fixed/shuffle_result.hpp @@ -8,8 +8,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -82,8 +82,8 @@ namespace sprout { Container const& cont, sprout::index_tuple, Shuffled const& shuffled, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::size_type size + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::size_type size ) { typedef sprout::tuples::tuple< @@ -91,12 +91,12 @@ namespace sprout { typename std::decay::type > result_type; return result_type( - sprout::remake_clone( + sprout::remake( cont, sprout::size(cont), (Indexes >= offset && Indexes < offset + size ? *sprout::next(sprout::begin(cont), sprout::tuples::get<0>(shuffled)[Indexes - offset]) - : *sprout::next(sprout::fixed_begin(cont), Indexes) + : *sprout::next(sprout::internal_begin(cont), Indexes) )... ), sprout::tuples::get<1>(shuffled) @@ -110,14 +110,14 @@ namespace sprout { Container const& cont, sprout::index_tuple indexes, UniformRandomNumberGenerator&& g, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::size_type size + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::size_type size ) { return sprout::fixed::detail::shuffle_result_impl_1( cont, indexes, - sprout::fixed::detail::make_shuffle_result_indexes::fixed_size>( + sprout::fixed::detail::make_shuffle_result_indexes::static_size>( size, sprout::forward(g) ), @@ -140,9 +140,9 @@ namespace sprout { { return sprout::fixed::detail::shuffle_result_impl( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::fixed_size>::type(), + typename sprout::index_range<0, sprout::container_traits::static_size>::type(), sprout::forward(g), - sprout::fixed_begin_offset(cont), + sprout::internal_begin_offset(cont), sprout::size(cont) ); } diff --git a/sprout/algorithm/fixed/sort.hpp b/sprout/algorithm/fixed/sort.hpp index cce15122..e17f7e91 100644 --- a/sprout/algorithm/fixed/sort.hpp +++ b/sprout/algorithm/fixed/sort.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -17,36 +17,36 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type sort_lr( Container const& cont, - typename sprout::fixed_container_traits::difference_type start, - typename sprout::fixed_container_traits::difference_type end, + typename sprout::container_traits::difference_type start, + typename sprout::container_traits::difference_type end, Compare comp, - typename sprout::fixed_container_traits::difference_type l, - typename sprout::fixed_container_traits::difference_type r, - typename sprout::fixed_container_traits::value_type const& p + typename sprout::container_traits::difference_type l, + typename sprout::container_traits::difference_type r, + typename sprout::container_traits::value_type const& p ); template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type sort_start( Container const& cont, - typename sprout::fixed_container_traits::difference_type start, - typename sprout::fixed_container_traits::difference_type end, + typename sprout::container_traits::difference_type start, + typename sprout::container_traits::difference_type end, Compare comp ); template - SPROUT_CONSTEXPR inline typename sprout::fixed_container_traits::value_type const& sort_select_pivot( + SPROUT_CONSTEXPR inline typename sprout::container_traits::value_type const& sort_select_pivot( Iterator origin, - typename sprout::fixed_container_traits::difference_type start, - typename sprout::fixed_container_traits::difference_type end + typename sprout::container_traits::difference_type start, + typename sprout::container_traits::difference_type end ) { // pivot Iԁi̗vfj return *sprout::next(origin, (end + start) / 2); } template - SPROUT_CONSTEXPR inline typename sprout::fixed_container_traits::difference_type sort_find_l( + SPROUT_CONSTEXPR inline typename sprout::container_traits::difference_type sort_find_l( Iterator origin, Compare comp, - typename sprout::fixed_container_traits::difference_type l, - typename sprout::fixed_container_traits::value_type const& p + typename sprout::container_traits::difference_type l, + typename sprout::container_traits::value_type const& p ) { // left ‚ return comp(*sprout::next(origin, l), p) @@ -55,11 +55,11 @@ namespace sprout { ; } template - SPROUT_CONSTEXPR inline typename sprout::fixed_container_traits::difference_type sort_find_r( + SPROUT_CONSTEXPR inline typename sprout::container_traits::difference_type sort_find_r( Iterator origin, Compare comp, - typename sprout::fixed_container_traits::difference_type r, - typename sprout::fixed_container_traits::value_type const& p + typename sprout::container_traits::difference_type r, + typename sprout::container_traits::value_type const& p ) { // right ‚ return comp(p, *sprout::next(origin, r)) @@ -70,43 +70,43 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type swap_lr( Container const& cont, - typename sprout::fixed_container_traits::difference_type l, - typename sprout::fixed_container_traits::difference_type r + typename sprout::container_traits::difference_type l, + typename sprout::container_traits::difference_type r ); template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type sort_part_l( Container const& cont, - typename sprout::fixed_container_traits::difference_type start, + typename sprout::container_traits::difference_type start, Compare comp, - typename sprout::fixed_container_traits::difference_type l + typename sprout::container_traits::difference_type l ) { // \[g return start < l - 1 ? sprout::fixed::detail::sort_start(cont, start, l - 1, comp) - : sprout::clone(cont) + : sprout::deep_copy(cont) ; } template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type sort_part_r( Container const& cont, - typename sprout::fixed_container_traits::difference_type end, + typename sprout::container_traits::difference_type end, Compare comp, - typename sprout::fixed_container_traits::difference_type r + typename sprout::container_traits::difference_type r ) { // E\[g return r + 1 < end ? sprout::fixed::detail::sort_start(cont, r + 1, end, comp) - : sprout::clone(cont) + : sprout::deep_copy(cont) ; } template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type sort_part_lr( Container const& cont, - typename sprout::fixed_container_traits::difference_type start, - typename sprout::fixed_container_traits::difference_type end, + typename sprout::container_traits::difference_type start, + typename sprout::container_traits::difference_type end, Compare comp, - typename sprout::fixed_container_traits::difference_type l, - typename sprout::fixed_container_traits::difference_type r + typename sprout::container_traits::difference_type l, + typename sprout::container_traits::difference_type r ) { // Eɕă\[g return sprout::fixed::detail::sort_part_r( @@ -119,12 +119,12 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type sort_next( Container const& cont, - typename sprout::fixed_container_traits::difference_type start, - typename sprout::fixed_container_traits::difference_type end, + typename sprout::container_traits::difference_type start, + typename sprout::container_traits::difference_type end, Compare comp, - typename sprout::fixed_container_traits::difference_type l, - typename sprout::fixed_container_traits::difference_type r, - typename sprout::fixed_container_traits::value_type const& p + typename sprout::container_traits::difference_type l, + typename sprout::container_traits::difference_type r, + typename sprout::container_traits::value_type const& p ) { // left right rāAEɕă\[g邩A܂̓XbvĂ͈̔͂̃\[g𑱂 return l >= r @@ -132,8 +132,8 @@ namespace sprout { : sprout::fixed::detail::sort_lr( sprout::fixed::swap_element( cont, - sprout::next(sprout::fixed_begin(cont), l), - sprout::next(sprout::fixed_begin(cont), r) + sprout::next(sprout::internal_begin(cont), l), + sprout::next(sprout::internal_begin(cont), r) ), start, end, @@ -147,12 +147,12 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type sort_lr( Container const& cont, - typename sprout::fixed_container_traits::difference_type start, - typename sprout::fixed_container_traits::difference_type end, + typename sprout::container_traits::difference_type start, + typename sprout::container_traits::difference_type end, Compare comp, - typename sprout::fixed_container_traits::difference_type l, - typename sprout::fixed_container_traits::difference_type r, - typename sprout::fixed_container_traits::value_type const& p + typename sprout::container_traits::difference_type l, + typename sprout::container_traits::difference_type r, + typename sprout::container_traits::value_type const& p ) { // left right return sprout::fixed::detail::sort_next( @@ -160,16 +160,16 @@ namespace sprout { start, end, comp, - sprout::fixed::detail::sort_find_l(sprout::fixed_begin(cont), comp, l, p), - sprout::fixed::detail::sort_find_r(sprout::fixed_begin(cont), comp, r, p), + sprout::fixed::detail::sort_find_l(sprout::internal_begin(cont), comp, l, p), + sprout::fixed::detail::sort_find_r(sprout::internal_begin(cont), comp, r, p), p ); } template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type sort_start( Container const& cont, - typename sprout::fixed_container_traits::difference_type start, - typename sprout::fixed_container_traits::difference_type end, + typename sprout::container_traits::difference_type start, + typename sprout::container_traits::difference_type end, Compare comp ) { // pivot Iă\[gJn @@ -180,23 +180,23 @@ namespace sprout { comp, start, end, - sprout::fixed::detail::sort_select_pivot(sprout::fixed_begin(cont), start, end) + sprout::fixed::detail::sort_select_pivot(sprout::internal_begin(cont), start, end) ); } template SPROUT_CONSTEXPR inline typename std::enable_if< - (sprout::fixed_container_traits::fixed_size <= 1), + (sprout::container_traits::static_size <= 1), typename sprout::fixed::result_of::algorithm::type >::type sort( Container const& cont, Compare comp ) { - return sprout::clone(cont); + return sprout::deep_copy(cont); } template SPROUT_CONSTEXPR inline typename std::enable_if< - (sprout::fixed_container_traits::fixed_size > 1), + (sprout::container_traits::static_size > 1), typename sprout::fixed::result_of::algorithm::type >::type sort( Container const& cont, @@ -205,24 +205,24 @@ namespace sprout { { return sprout::fixed::detail::sort_start( cont, - sprout::fixed_begin_offset(cont), - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::fixed_begin(cont), sprout::end(cont) - 1), + sprout::internal_begin_offset(cont), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::internal_begin(cont), sprout::end(cont) - 1), comp ); } template SPROUT_CONSTEXPR inline typename std::enable_if< - (sprout::fixed_container_traits::fixed_size <= 1), + (sprout::container_traits::static_size <= 1), typename sprout::fixed::result_of::algorithm::type >::type sort( Container const& cont ) { - return sprout::clone(cont); + return sprout::deep_copy(cont); } template SPROUT_CONSTEXPR inline typename std::enable_if< - (sprout::fixed_container_traits::fixed_size > 1), + (sprout::container_traits::static_size > 1), typename sprout::fixed::result_of::algorithm::type >::type sort( Container const& cont @@ -230,9 +230,9 @@ namespace sprout { { return sprout::fixed::detail::sort_start( cont, - sprout::fixed_begin_offset(cont), - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::fixed_begin(cont), sprout::end(cont) - 1), - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>() + sprout::internal_begin_offset(cont), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::internal_begin(cont), sprout::end(cont) - 1), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>() ); } } // namespace detail diff --git a/sprout/algorithm/fixed/sort_heap.hpp b/sprout/algorithm/fixed/sort_heap.hpp index 3cfa7eaa..40f23282 100644 --- a/sprout/algorithm/fixed/sort_heap.hpp +++ b/sprout/algorithm/fixed/sort_heap.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIXED_SORT_HEAP_HPP #include -#include -#include +#include +#include #include #include #include @@ -17,12 +17,12 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type sort_heap_impl( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::difference_type size + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::difference_type size ) { return size < 2 - ? sprout::clone(cont) + ? sprout::deep_copy(cont) : sprout::fixed::detail::sort_heap_impl( sprout::fixed::detail::pop_heap_impl( sprout::fixed::swap_element(cont, sprout::begin(cont), sprout::next(sprout::begin(cont), size - 1)), @@ -49,7 +49,7 @@ namespace sprout { return sprout::fixed::detail::sort_heap_impl( cont, comp, - sprout::fixed_begin_offset(cont), + sprout::internal_begin_offset(cont), sprout::size(cont) ); } @@ -63,8 +63,8 @@ namespace sprout { { return sprout::fixed::detail::sort_heap_impl( cont, - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), - sprout::fixed_begin_offset(cont), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::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 9448c9e8..62d4268a 100644 --- a/sprout/algorithm/fixed/stable_partition.hpp +++ b/sprout/algorithm/fixed/stable_partition.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIXED_STABLE_PARTITION_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/algorithm/fixed/stable_partition_copy.hpp b/sprout/algorithm/fixed/stable_partition_copy.hpp index 7a683043..5d5caefb 100644 --- a/sprout/algorithm/fixed/stable_partition_copy.hpp +++ b/sprout/algorithm/fixed/stable_partition_copy.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -14,29 +14,29 @@ namespace sprout { namespace detail { template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + 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, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + 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, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { @@ -50,30 +50,30 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + 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, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, BidirectionalIterator temp_first, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + 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, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, BidirectionalIterator temp_first, Args const&... args ) diff --git a/sprout/algorithm/fixed/stable_sort.hpp b/sprout/algorithm/fixed/stable_sort.hpp index 23d44612..ecea99c3 100644 --- a/sprout/algorithm/fixed/stable_sort.hpp +++ b/sprout/algorithm/fixed/stable_sort.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -16,39 +16,39 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type stable_sort_impl_restart( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::value_type const& prev_value, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::value_type const& prev_value, Args const&... args ); template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type stable_sort_impl_synonym( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::const_iterator first, - typename sprout::fixed_container_traits::const_iterator last, - typename sprout::fixed_container_traits::value_type const& value, - typename sprout::fixed_container_traits::size_type count, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::const_iterator first, + typename sprout::container_traits::const_iterator last, + typename sprout::container_traits::value_type const& value, + typename sprout::container_traits::size_type count, Args const&... args ) { - return sprout::remake_clone(cont, sprout::size(cont), args...); + return sprout::remake(cont, sprout::size(cont), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type stable_sort_impl_synonym( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::const_iterator first, - typename sprout::fixed_container_traits::const_iterator last, - typename sprout::fixed_container_traits::value_type const& value, - typename sprout::fixed_container_traits::size_type count, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::const_iterator first, + typename sprout::container_traits::const_iterator last, + typename sprout::container_traits::value_type const& value, + typename sprout::container_traits::size_type count, Args const&... args ) { @@ -63,13 +63,13 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type stable_sort_impl_restart_1( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::const_iterator first, - typename sprout::fixed_container_traits::const_iterator last, - typename sprout::fixed_container_traits::value_type const& value, - typename sprout::fixed_container_traits::size_type count, - typename sprout::fixed_container_traits::const_iterator current, - typename sprout::fixed_container_traits::value_type const& prev_value, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::const_iterator first, + typename sprout::container_traits::const_iterator last, + typename sprout::container_traits::value_type const& value, + typename sprout::container_traits::size_type count, + typename sprout::container_traits::const_iterator current, + typename sprout::container_traits::value_type const& prev_value, Args const&... args ) { @@ -88,8 +88,8 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type stable_sort_impl_restart( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::value_type const& prev_value, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::value_type const& prev_value, Args const&... args ) { @@ -113,12 +113,12 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type stable_sort_impl_1( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::const_iterator first, - typename sprout::fixed_container_traits::const_iterator last, - typename sprout::fixed_container_traits::value_type const& value, - typename sprout::fixed_container_traits::size_type count, - typename sprout::fixed_container_traits::const_iterator current + typename sprout::container_traits::size_type size, + typename sprout::container_traits::const_iterator first, + typename sprout::container_traits::const_iterator last, + typename sprout::container_traits::value_type const& value, + typename sprout::container_traits::size_type count, + typename sprout::container_traits::const_iterator current ) { return first != last @@ -134,7 +134,7 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type stable_sort_impl( Container const& cont, Compare comp, - typename sprout::fixed_container_traits::size_type size + typename sprout::container_traits::size_type size ) { return sprout::fixed::detail::stable_sort_impl_1( @@ -150,18 +150,18 @@ namespace sprout { } template SPROUT_CONSTEXPR inline typename std::enable_if< - (sprout::fixed_container_traits::fixed_size <= 1), + (sprout::container_traits::static_size <= 1), typename sprout::fixed::result_of::algorithm::type >::type stable_sort( Container const& cont, Compare comp ) { - return sprout::clone(cont); + return sprout::deep_copy(cont); } template SPROUT_CONSTEXPR inline typename std::enable_if< - (sprout::fixed_container_traits::fixed_size > 1), + (sprout::container_traits::static_size > 1), typename sprout::fixed::result_of::algorithm::type >::type stable_sort( Container const& cont, @@ -176,17 +176,17 @@ namespace sprout { } template SPROUT_CONSTEXPR inline typename std::enable_if< - (sprout::fixed_container_traits::fixed_size <= 1), + (sprout::container_traits::static_size <= 1), typename sprout::fixed::result_of::algorithm::type >::type stable_sort( Container const& cont ) { - return sprout::clone(cont); + return sprout::deep_copy(cont); } template SPROUT_CONSTEXPR inline typename std::enable_if< - (sprout::fixed_container_traits::fixed_size > 1), + (sprout::container_traits::static_size > 1), typename sprout::fixed::result_of::algorithm::type >::type stable_sort( Container const& cont @@ -194,7 +194,7 @@ namespace sprout { { return sprout::fixed::detail::stable_sort_impl( cont, - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::less::value_type>(), sprout::size(cont) ); } diff --git a/sprout/algorithm/fixed/swap_element.hpp b/sprout/algorithm/fixed/swap_element.hpp index aa038a91..fd9cbca8 100644 --- a/sprout/algorithm/fixed/swap_element.hpp +++ b/sprout/algorithm/fixed/swap_element.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIXED_SWAP_ELEMENT_HPP #include -#include -#include +#include +#include #include #include @@ -15,8 +15,8 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type swap_element( Container const& cont, - typename sprout::fixed_container_traits::const_iterator pos1, - typename sprout::fixed_container_traits::const_iterator pos2 + typename sprout::container_traits::const_iterator pos1, + typename sprout::container_traits::const_iterator pos2 ) { return sprout::fixed::swap_element_copy(sprout::begin(cont), sprout::end(cont), cont, pos1, pos2); diff --git a/sprout/algorithm/fixed/swap_element_copy.hpp b/sprout/algorithm/fixed/swap_element_copy.hpp index 6ac8115c..678b8bdd 100644 --- a/sprout/algorithm/fixed/swap_element_copy.hpp +++ b/sprout/algorithm/fixed/swap_element_copy.hpp @@ -5,8 +5,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -23,12 +23,12 @@ namespace sprout { RandomAccessIterator pos1, RandomAccessIterator pos2, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::size_type input_size + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::size_type input_size ) { - return sprout::remake_clone( + return sprout::remake( result, sprout::size(result), (Indexes >= offset && Indexes < offset + size && Indexes < offset + input_size @@ -37,7 +37,7 @@ namespace sprout { : sprout::next(first, Indexes - offset) == pos2 ? *pos1 : *sprout::next(first, Indexes - offset) - : *sprout::next(sprout::fixed_begin(result), Indexes) + : *sprout::next(sprout::internal_begin(result), Indexes) )... ); } @@ -57,15 +57,15 @@ namespace sprout { result, pos1, pos2, - typename sprout::index_range<0, sprout::fixed_container_traits::fixed_size>::type(), - sprout::fixed_begin_offset(result), + typename sprout::index_range<0, sprout::container_traits::static_size>::type(), + sprout::internal_begin_offset(result), sprout::size(result), NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last) ); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type swap_element_copy_impl( InputIterator first, @@ -73,15 +73,15 @@ namespace sprout { Result const& result, InputIterator pos1, InputIterator pos2, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type swap_element_copy_impl( InputIterator first, @@ -89,7 +89,7 @@ namespace sprout { Result const& result, InputIterator pos1, InputIterator pos2, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { diff --git a/sprout/algorithm/fixed/transform.hpp b/sprout/algorithm/fixed/transform.hpp index 80ff1fee..39513a02 100644 --- a/sprout/algorithm/fixed/transform.hpp +++ b/sprout/algorithm/fixed/transform.hpp @@ -5,8 +5,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -22,17 +22,17 @@ namespace sprout { Result const& result, UnaryOperation op, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::size_type input_size + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::size_type input_size ) { - return sprout::remake_clone( + return sprout::remake( result, sprout::size(result), (Indexes >= offset && Indexes < offset + size && Indexes < offset + input_size ? op(*sprout::next(first, Indexes - offset)) - : *sprout::next(sprout::fixed_begin(result), Indexes) + : *sprout::next(sprout::internal_begin(result), Indexes) )... ); } @@ -50,37 +50,37 @@ namespace sprout { last, result, op, - typename sprout::index_range<0, sprout::fixed_container_traits::fixed_size>::type(), - sprout::fixed_begin_offset(result), + typename sprout::index_range<0, sprout::container_traits::static_size>::type(), + sprout::internal_begin_offset(result), sprout::size(result), NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last) ); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + 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, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + 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, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { @@ -125,17 +125,17 @@ namespace sprout { Result const& result, BinaryOperation op, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::size_type input_size + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::size_type input_size ) { - return sprout::remake_clone( + return sprout::remake( result, sprout::size(result), (Indexes >= offset && Indexes < offset + size && Indexes < offset + input_size ? op(*sprout::next(first1, Indexes - offset), *sprout::next(first2, Indexes - offset)) - : *sprout::next(sprout::fixed_begin(result), Indexes) + : *sprout::next(sprout::internal_begin(result), Indexes) )... ); } @@ -155,15 +155,15 @@ namespace sprout { first2, result, op, - typename sprout::index_range<0, sprout::fixed_container_traits::fixed_size>::type(), - sprout::fixed_begin_offset(result), + typename sprout::index_range<0, sprout::container_traits::static_size>::type(), + sprout::internal_begin_offset(result), sprout::size(result), NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first1, last1) ); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type transform_impl( InputIterator1 first1, @@ -171,15 +171,15 @@ namespace sprout { InputIterator2 first2, Result const& result, BinaryOperation op, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type transform_impl( InputIterator1 first1, @@ -187,7 +187,7 @@ namespace sprout { InputIterator2 first2, Result const& result, BinaryOperation op, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Args const&... args ) { diff --git a/sprout/algorithm/fixed/unique.hpp b/sprout/algorithm/fixed/unique.hpp index 65ec6334..3eba5e12 100644 --- a/sprout/algorithm/fixed/unique.hpp +++ b/sprout/algorithm/fixed/unique.hpp @@ -2,8 +2,8 @@ #define SPROUT_ALGORITHM_FIXED_UNIQUE_HPP #include -#include -#include +#include +#include #include namespace sprout { diff --git a/sprout/algorithm/fixed/unique_copy.hpp b/sprout/algorithm/fixed/unique_copy.hpp index 6c456569..63fac428 100644 --- a/sprout/algorithm/fixed/unique_copy.hpp +++ b/sprout/algorithm/fixed/unique_copy.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -14,28 +14,28 @@ namespace sprout { namespace detail { template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args) + 1, + 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, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Head const& head, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args..., head); + return sprout::remake(result, sprout::size(result), args..., head); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args) + 1, + 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, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Head const& head, Args const&... args ) @@ -67,30 +67,30 @@ namespace sprout { namespace detail { template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args) + 1, + 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, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Head const& head, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args..., head); + return sprout::remake(result, sprout::size(result), args..., head); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args) + 1, + 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, - typename sprout::fixed_container_traits::size_type size, + typename sprout::container_traits::size_type size, Head const& head, Args const&... args ) diff --git a/sprout/algorithm/string/join.hpp b/sprout/algorithm/string/join.hpp index 858c8f22..fedd5914 100644 --- a/sprout/algorithm/string/join.hpp +++ b/sprout/algorithm/string/join.hpp @@ -5,8 +5,8 @@ #include #include #include -#include -#include +#include +#include #include namespace sprout { @@ -18,13 +18,13 @@ namespace sprout { template struct join { public: - typedef typename sprout::rebind_fixed_size< - typename sprout::fixed_container_traits::value_type - >::template apply< - sprout::fixed_container_traits< - typename sprout::fixed_container_traits::value_type - >::fixed_size - * sprout::fixed_container_traits::fixed_size + typedef typename sprout::container_transform_traits< + typename sprout::container_traits::value_type + >::template rebind_size< + sprout::container_traits< + typename sprout::container_traits::value_type + >::static_size + * sprout::container_traits::static_size >::type type; }; } // namespace result_of @@ -32,7 +32,7 @@ namespace sprout { namespace detail { template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), Result >::type join_impl( ContainerInputIterator first_cont, @@ -41,7 +41,7 @@ namespace sprout { ); template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), Result >::type join_impl( ContainerInputIterator first_cont, @@ -50,7 +50,7 @@ namespace sprout { ); template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), Result >::type join_impl_1( ContainerInputIterator first_cont, @@ -60,11 +60,11 @@ namespace sprout { Args const&... args ) { - return sprout::make_clone(args...); + return sprout::make(args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), Result >::type join_impl_1( ContainerInputIterator first_cont, @@ -81,7 +81,7 @@ namespace sprout { } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), Result >::type join_impl( ContainerInputIterator first_cont, @@ -89,11 +89,11 @@ namespace sprout { Args const&... args ) { - return sprout::make_clone(args...); + return sprout::make(args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), Result >::type join_impl( ContainerInputIterator first_cont, @@ -103,7 +103,7 @@ namespace sprout { { return first_cont != last_cont ? sprout::algorithm::detail::join_impl_1(first_cont, last_cont, sprout::begin(*first_cont), sprout::end(*first_cont), args...) - : sprout::make_clone(args...) + : sprout::make(args...) ; } } // namespace detail diff --git a/sprout/algorithm/string/join2.hpp b/sprout/algorithm/string/join2.hpp index fe5bbc4a..117e1bfd 100644 --- a/sprout/algorithm/string/join2.hpp +++ b/sprout/algorithm/string/join2.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include @@ -17,19 +17,19 @@ namespace sprout { template struct join2 { public: - typedef typename sprout::rebind_fixed_size< - typename sprout::fixed_container_traits::value_type - >::template apply< - sprout::fixed_container_traits::fixed_size != 0 + typedef typename sprout::container_transform_traits< + typename sprout::container_traits::value_type + >::template rebind_size< + sprout::container_traits::static_size != 0 ? ( - sprout::fixed_container_traits< - typename sprout::fixed_container_traits::value_type - >::fixed_size - + (sprout::fixed_container_traits::fixed_size - 1) * ( - sprout::fixed_container_traits::fixed_size - + sprout::fixed_container_traits< - typename sprout::fixed_container_traits::value_type - >::fixed_size + sprout::container_traits< + typename sprout::container_traits::value_type + >::static_size + + (sprout::container_traits::static_size - 1) * ( + sprout::container_traits::static_size + + sprout::container_traits< + typename sprout::container_traits::value_type + >::static_size ) ) : 0 @@ -40,7 +40,7 @@ namespace sprout { namespace detail { template SPROUT_CONSTEXPR inline typename std::enable_if< - (sprout::fixed_container_traits::fixed_size == sprout::fixed_container_traits::fixed_size), + (sprout::container_traits::static_size == sprout::container_traits::static_size), Result >::type join2_impl_1( ContainerIterator first, @@ -53,7 +53,7 @@ namespace sprout { } template SPROUT_CONSTEXPR inline typename std::enable_if< - (sprout::fixed_container_traits::fixed_size < sprout::fixed_container_traits::fixed_size), + (sprout::container_traits::static_size < sprout::container_traits::static_size), Result >::type join2_impl_1( ContainerIterator first, @@ -83,7 +83,7 @@ namespace sprout { separator, *first ) - : sprout::make_clone() + : sprout::make() ; } } // namespace detail diff --git a/sprout/array.hpp b/sprout/array.hpp index 76763c10..518b09e7 100644 --- a/sprout/array.hpp +++ b/sprout/array.hpp @@ -8,8 +8,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include HDR_ALGORITHM_SSCRISK_CEL_OR_SPROUT_DETAIL @@ -42,7 +42,6 @@ namespace sprout { typedef sprout::reverse_iterator const_reverse_iterator; public: SPROUT_STATIC_CONSTEXPR size_type static_size = N; - SPROUT_STATIC_CONSTEXPR size_type fixed_size = static_size; public: value_type elems[static_size ? static_size : 1]; public: @@ -186,8 +185,6 @@ namespace sprout { }; template SPROUT_CONSTEXPR typename sprout::array::size_type sprout::array::static_size; - template - SPROUT_CONSTEXPR typename sprout::array::size_type sprout::array::fixed_size; // // operator== @@ -230,19 +227,6 @@ namespace sprout { lhs.swap(rhs); } - // - // rebind_fixed_size - // - template - struct rebind_fixed_size > { - public: - template >::size_type S> - struct apply { - public: - typedef sprout::array type; - }; - }; - // // make_array // @@ -309,11 +293,9 @@ namespace std { // tuple_size // template - struct tuple_size > { - public: - typedef std::integral_constant type; - SPROUT_STATIC_CONSTEXPR std::size_t value = type::value; - }; + struct tuple_size > + : public std::integral_constant + {}; // // tuple_element diff --git a/sprout/checksum/sha1.hpp b/sprout/checksum/sha1.hpp index be517e53..a15f8ae7 100644 --- a/sprout/checksum/sha1.hpp +++ b/sprout/checksum/sha1.hpp @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include #include @@ -175,13 +175,13 @@ namespace sprout { { return first == last ? process( h_, - sprout::get_fixed(sprout::range::fixed::copy(sprout::make_array(args...), sprout::sub(block_, block_byte_index_))), + sprout::get_internal(sprout::range::fixed::copy(sprout::make_array(args...), sprout::sub(block_, block_byte_index_))), block_byte_index_ + sizeof...(Args), byte_count_ + sizeof...(Args) ) : block_byte_index_ + sizeof...(Args) == 64 ? process( h_, - sprout::get_fixed(sprout::range::fixed::copy(sprout::make_array(args...), sprout::sub(block_, block_byte_index_))), + sprout::get_internal(sprout::range::fixed::copy(sprout::make_array(args...), sprout::sub(block_, block_byte_index_))), block_byte_index_ + sizeof...(Args), byte_count_ + sizeof...(Args) ).process_block_impl(first, last) @@ -214,13 +214,13 @@ namespace sprout { { return block_byte_index_ + sizeof...(Args) == 56 ? process( h_, - sprout::get_fixed(sprout::range::fixed::copy(sprout::make_array(args...), sprout::sub(block_, block_byte_index_))), + sprout::get_internal(sprout::range::fixed::copy(sprout::make_array(args...), sprout::sub(block_, block_byte_index_))), block_byte_index_ + sizeof...(Args), byte_count_ + sizeof...(Args) ) : block_byte_index_ + sizeof...(Args) == 64 ? process( h_, - sprout::get_fixed(sprout::range::fixed::copy(sprout::make_array(args...), sprout::sub(block_, block_byte_index_))), + sprout::get_internal(sprout::range::fixed::copy(sprout::make_array(args...), sprout::sub(block_, block_byte_index_))), block_byte_index_ + sizeof...(Args), byte_count_ + sizeof...(Args) ).process_padding() @@ -230,7 +230,7 @@ namespace sprout { SPROUT_CONSTEXPR sha1 process_append() const { return process( h_, - sprout::get_fixed(sprout::range::fixed::copy( + sprout::get_internal(sprout::range::fixed::copy( sprout::array{{ static_cast(0), static_cast(0), diff --git a/sprout/container.hpp b/sprout/container.hpp new file mode 100644 index 00000000..8344514a --- /dev/null +++ b/sprout/container.hpp @@ -0,0 +1,9 @@ +#ifndef SPROUT_CONTAINER_HPP +#define SPROUT_CONTAINER_HPP + +#include +#include +#include +#include + +#endif // #ifndef SPROUT_CONTAINER_HPP diff --git a/sprout/container/begin.hpp b/sprout/container/begin.hpp new file mode 100644 index 00000000..d66d5704 --- /dev/null +++ b/sprout/container/begin.hpp @@ -0,0 +1,43 @@ +#ifndef SPROUT_CONTAINER_BEGIN_HPP +#define SPROUT_CONTAINER_BEGIN_HPP + +#include +#include +#include + +namespace sprout { + // + // begin + // + template + inline typename sprout::container_traits::iterator begin(Container& cont) { + return cont.begin(); + } + template + inline typename sprout::container_traits::iterator begin(T (& arr)[N]) { + return arr; + } + + template + SPROUT_CONSTEXPR inline typename sprout::container_traits::const_iterator begin(Container const& cont) { + return cont.begin(); + } + template + SPROUT_CONSTEXPR inline typename sprout::container_traits::const_iterator begin(T const (& arr)[N]) { + return arr; + } + + // + // cbegin + // + template + SPROUT_CONSTEXPR inline typename sprout::container_traits::const_iterator cbegin(Container const& cont) { + return cont.begin(); + } + template + SPROUT_CONSTEXPR inline typename sprout::container_traits::const_iterator cbegin(T const (& arr)[N]) { + return arr; + } +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_BEGIN_HPP diff --git a/sprout/container/const_iterator.hpp b/sprout/container/const_iterator.hpp new file mode 100644 index 00000000..da2f01ad --- /dev/null +++ b/sprout/container/const_iterator.hpp @@ -0,0 +1,20 @@ +#ifndef SPROUT_CONTAINER_CONST_ITERATOR_HPP +#define SPROUT_CONTAINER_CONST_ITERATOR_HPP + +#include +#include + +namespace sprout { + namespace containers { + // + // const_iterator + // + template + struct const_iterator { + public: + typedef typename sprout::container_traits::const_iterator type; + }; + } // namespace containers +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_CONST_ITERATOR_HPP diff --git a/sprout/container/const_pointer.hpp b/sprout/container/const_pointer.hpp new file mode 100644 index 00000000..a08ea29c --- /dev/null +++ b/sprout/container/const_pointer.hpp @@ -0,0 +1,20 @@ +#ifndef SPROUT_CONTAINER_CONST_POINTER_HPP +#define SPROUT_CONTAINER_CONST_POINTER_HPP + +#include +#include + +namespace sprout { + namespace containers { + // + // const_pointer + // + template + struct const_pointer { + public: + typedef typename sprout::container_traits::const_pointer type; + }; + } // namespace containers +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_CONST_POINTER_HPP diff --git a/sprout/container/const_reference.hpp b/sprout/container/const_reference.hpp new file mode 100644 index 00000000..ce63599f --- /dev/null +++ b/sprout/container/const_reference.hpp @@ -0,0 +1,20 @@ +#ifndef SPROUT_CONTAINER_CONST_REFERENCE_HPP +#define SPROUT_CONTAINER_CONST_REFERENCE_HPP + +#include +#include + +namespace sprout { + namespace containers { + // + // const_reference + // + template + struct const_reference { + public: + typedef typename sprout::container_traits::const_reference type; + }; + } // namespace containers +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_CONST_REFERENCE_HPP diff --git a/sprout/container/container_construct_traits.hpp b/sprout/container/container_construct_traits.hpp new file mode 100644 index 00000000..0ee39a0f --- /dev/null +++ b/sprout/container/container_construct_traits.hpp @@ -0,0 +1,53 @@ +#ifndef SPROUT_CONTAINER_CONTAINER_TRAITS_CONSTRUCT_TRAITS_HPP +#define SPROUT_CONTAINER_CONTAINER_TRAITS_CONSTRUCT_TRAITS_HPP + +#include +#include +#include + +namespace sprout { + // + // container_construct_traits + // + template + struct container_construct_traits; + + namespace detail { + template + SPROUT_CONSTEXPR typename sprout::container_construct_traits::copied_type + default_make_container(Args&&... args) { + typedef typename sprout::container_construct_traits::copied_type copied_type; + return copied_type{{sprout::forward(args)...}}; + } + } // namespace detail + + template + struct container_construct_traits { + public: + typedef Container copied_type; + public: + template + static SPROUT_CONSTEXPR copied_type deep_copy(Cont&& cont) { + return sprout::forward(cont); + } + template + static SPROUT_CONSTEXPR copied_type make(Args&&... args) { + return sprout::detail::default_make_container(sprout::forward(args)...); + } + template + static SPROUT_CONSTEXPR copied_type remake( + Cont&& cont, + typename sprout::container_traits::difference_type size, + Args&&... args + ) + { + return make(sprout::forward(args)...); + } + }; + template + struct container_construct_traits + : public sprout::container_construct_traits + {}; +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_CONTAINER_CONSTRUCT_TRAITS_HPP diff --git a/sprout/container/container_traits.hpp b/sprout/container/container_traits.hpp new file mode 100644 index 00000000..1f544731 --- /dev/null +++ b/sprout/container/container_traits.hpp @@ -0,0 +1,98 @@ +#ifndef SPROUT_CONTAINER_CONTAINER_TRAITS_HPP +#define SPROUT_CONTAINER_CONTAINER_TRAITS_HPP + +#include +#include +#include + +namespace sprout { + // + // container_traits + // + template + struct container_traits; + + namespace detail { + template + struct container_traits_default_types { + public: + typedef typename Container::value_type value_type; + typedef typename Container::iterator iterator; + typedef typename Container::const_iterator const_iterator; + typedef typename Container::reference reference; + typedef typename Container::const_reference const_reference; + typedef typename Container::size_type size_type; + typedef typename Container::difference_type difference_type; + typedef typename Container::pointer pointer; + typedef typename Container::const_pointer const_pointer; + }; + template + struct container_traits_default_types { + public: + typedef T value_type; + typedef T* iterator; + typedef T const* const_iterator; + typedef T& reference; + typedef T const& const_reference; + typedef std::size_t size_type; + typedef std::ptrdiff_t difference_type; + typedef T* pointer; + typedef T const* const_pointer; + }; + + template + struct container_traits_default_size { + public: + SPROUT_STATIC_CONSTEXPR typename sprout::detail::container_traits_default_types::size_type static_size + = std::tuple_size::value + ; + public: + static SPROUT_CONSTEXPR typename sprout::detail::container_traits_default_types::size_type fixed_size() { + return static_size; + } + }; + template + struct container_traits_default_size { + public: + SPROUT_STATIC_CONSTEXPR typename sprout::detail::container_traits_default_types::size_type static_size + = N + ; + public: + static SPROUT_CONSTEXPR typename sprout::detail::container_traits_default_types::size_type fixed_size() { + return static_size; + } + }; + } // namespace detail + + template + struct container_traits + : public sprout::detail::container_traits_default_types + , public sprout::detail::container_traits_default_size + {}; + template + struct container_traits + : public sprout::container_traits + { + public: + typedef typename sprout::container_traits::const_iterator iterator; + typedef typename sprout::container_traits::const_reference reference; + typedef typename sprout::container_traits::const_pointer pointer; + }; + + template + struct container_traits + : public sprout::detail::container_traits_default_types + , public sprout::detail::container_traits_default_size + {}; + template + struct container_traits + : public sprout::container_traits + { + public: + typedef typename sprout::container_traits::const_iterator iterator; + typedef typename sprout::container_traits::const_reference reference; + typedef typename sprout::container_traits::const_pointer pointer; + }; +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_CONTAINER_TRAITS_HPP diff --git a/sprout/container/container_transform_traits.hpp b/sprout/container/container_transform_traits.hpp new file mode 100644 index 00000000..0415a65d --- /dev/null +++ b/sprout/container/container_transform_traits.hpp @@ -0,0 +1,68 @@ +#ifndef SPROUT_CONTAINER_CONTAINER_TRANSFORM_TRAITS_HPP +#define SPROUT_CONTAINER_CONTAINER_TRANSFORM_TRAITS_HPP + +#include +#include +#include + +namespace sprout { + // + // container_transform_traits + // + template + struct container_transform_traits; + + namespace detail { + template::size_type Size> + struct default_array_rebind_size; + + template< + template class Array, + typename T, + std::size_t N, + typename sprout::container_traits >::size_type Size + > + struct default_array_rebind_size, Size> { + public: + typedef Array type; + }; + } // namespace detail + + template + struct container_transform_traits { + public: + template::size_type Size> + struct rebind_size + : public sprout::detail::default_array_rebind_size + {}; + }; + template + struct container_transform_traits { + public: + template::size_type Size> + struct rebind_size { + typedef typename sprout::container_transform_traits::template rebind_size::type const type; + }; + }; + + template + struct container_transform_traits { + public: + template::size_type Size> + struct rebind_size { + public: + typedef T type[Size]; + }; + }; + template + struct container_transform_traits { + public: + template::size_type Size> + struct rebind_size { + public: + typedef T const type[Size]; + }; + }; +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_CONTAINER_TRANSFORM_TRAITS_HPP diff --git a/sprout/container/copied_type.hpp b/sprout/container/copied_type.hpp new file mode 100644 index 00000000..fa776b3e --- /dev/null +++ b/sprout/container/copied_type.hpp @@ -0,0 +1,20 @@ +#ifndef SPROUT_CONTAINER_COPIED_TYPE_HPP +#define SPROUT_CONTAINER_COPIED_TYPE_HPP + +#include +#include + +namespace sprout { + namespace containers { + // + // copied_type + // + template + struct copied_type { + public: + typedef typename sprout::container_construct_traits::copied_type type; + }; + } // namespace containers +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_COPIED_TYPE_HPP diff --git a/sprout/container/deep_copy.hpp b/sprout/container/deep_copy.hpp new file mode 100644 index 00000000..3d9b5b41 --- /dev/null +++ b/sprout/container/deep_copy.hpp @@ -0,0 +1,22 @@ +#ifndef SPROUT_CONTAINER_DEEP_COPY_HPP +#define SPROUT_CONTAINER_DEEP_COPY_HPP + +#include +#include +#include +#include + +namespace sprout { + // + // deep_copy + // + template + SPROUT_CONSTEXPR inline typename sprout::container_construct_traits< + typename std::remove_reference::type + >::copied_type deep_copy(Container&& cont) { + typedef typename std::remove_reference::type container_type; + return sprout::container_construct_traits::deep_copy(sprout::forward(cont)); + } +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_DEEP_COPY_HPP diff --git a/sprout/container/difference_type.hpp b/sprout/container/difference_type.hpp new file mode 100644 index 00000000..0ae382e8 --- /dev/null +++ b/sprout/container/difference_type.hpp @@ -0,0 +1,20 @@ +#ifndef SPROUT_CONTAINER_DIFFERENCE_TYPE_HPP +#define SPROUT_CONTAINER_DIFFERENCE_TYPE_HPP + +#include +#include + +namespace sprout { + namespace containers { + // + // difference_type + // + template + struct difference_type { + public: + typedef typename sprout::container_traits::difference_type type; + }; + } // namespace containers +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_DIFFERENCE_TYPE_HPP diff --git a/sprout/container/empty.hpp b/sprout/container/empty.hpp new file mode 100644 index 00000000..6c4f2085 --- /dev/null +++ b/sprout/container/empty.hpp @@ -0,0 +1,17 @@ +#ifndef SPROUT_CONTAINER_EMPTY_HPP +#define SPROUT_CONTAINER_EMPTY_HPP + +#include +#include + +namespace sprout { + // + // empty + // + template + SPROUT_CONSTEXPR inline bool empty(Container const& cont) { + return sprout::size(cont) == 0; + } +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_EMPTY_HPP diff --git a/sprout/container/end.hpp b/sprout/container/end.hpp new file mode 100644 index 00000000..c5eacf50 --- /dev/null +++ b/sprout/container/end.hpp @@ -0,0 +1,43 @@ +#ifndef SPROUT_CONTAINER_END_HPP +#define SPROUT_CONTAINER_END_HPP + +#include +#include +#include + +namespace sprout { + // + // end + // + template + inline typename sprout::container_traits::iterator end(Container& cont) { + return cont.end(); + } + template + inline typename sprout::container_traits::iterator end(T (& arr)[N]) { + return arr + N; + } + + template + SPROUT_CONSTEXPR inline typename sprout::container_traits::const_iterator end(Container const& cont) { + return cont.end(); + } + template + SPROUT_CONSTEXPR inline typename sprout::container_traits::const_iterator end(T const (& arr)[N]) { + return arr + N; + } + + // + // cend + // + template + SPROUT_CONSTEXPR inline typename sprout::container_traits::const_iterator cend(Container const& cont) { + return cont.end(); + } + template + SPROUT_CONSTEXPR inline typename sprout::container_traits::const_iterator cend(T const (& arr)[N]) { + return arr + N; + } +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_END_HPP diff --git a/sprout/container/fixed_size.hpp b/sprout/container/fixed_size.hpp new file mode 100644 index 00000000..c60e3204 --- /dev/null +++ b/sprout/container/fixed_size.hpp @@ -0,0 +1,17 @@ +#ifndef SPROUT_CONTAINER_FIXED_SIZE_HPP +#define SPROUT_CONTAINER_FIXED_SIZE_HPP + +#include +#include + +namespace sprout { + // + // fixed_size + // + template + SPROUT_CONSTEXPR inline typename sprout::container_traits::size_type fixed_size() { + return sprout::container_traits::fixed_size(); + } +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_FIXED_SIZE_HPP diff --git a/sprout/container/functions.hpp b/sprout/container/functions.hpp new file mode 100644 index 00000000..0accbb26 --- /dev/null +++ b/sprout/container/functions.hpp @@ -0,0 +1,22 @@ +#ifndef SPROUT_CONTAINER_FUNCTIONS_HPP +#define SPROUT_CONTAINER_FUNCTIONS_HPP + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif // #ifndef SPROUT_CONTAINER_FUNCTIONS_HPP diff --git a/sprout/container/get_internal.hpp b/sprout/container/get_internal.hpp new file mode 100644 index 00000000..55aaf1e7 --- /dev/null +++ b/sprout/container/get_internal.hpp @@ -0,0 +1,21 @@ +#ifndef SPROUT_FIXED_CONTAINER_GET_INTERNAL_HPP +#define SPROUT_FIXED_CONTAINER_GET_INTERNAL_HPP + +#include +#include +#include +#include +#include + +namespace sprout { + // + // get_internal + // + template + SPROUT_CONSTEXPR inline typename sprout::containers::internal::type get_internal(Container&& cont) { + typedef typename std::remove_reference::type container_type; + return sprout::sub_container_traits::get_internal(sprout::forward(cont)); + } +} // namespace sprout + +#endif // #ifndef SPROUT_FIXED_CONTAINER_GET_INTERNAL_HPP diff --git a/sprout/container/internal.hpp b/sprout/container/internal.hpp new file mode 100644 index 00000000..d2594b2e --- /dev/null +++ b/sprout/container/internal.hpp @@ -0,0 +1,25 @@ +#ifndef SPROUT_CONTAINER_INTERNAL_HPP +#define SPROUT_CONTAINER_INTERNAL_HPP + +#include +#include +#include + +namespace sprout { + namespace containers { + // + // internal + // + template + struct internal { + public: + typedef typename sprout::sub_container_traits< + typename std::remove_reference::type + >::template internal< + Container + >::type type; + }; + } // namespace containers +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_INTERNAL_HPP diff --git a/sprout/container/internal_begin.hpp b/sprout/container/internal_begin.hpp new file mode 100644 index 00000000..7721b34b --- /dev/null +++ b/sprout/container/internal_begin.hpp @@ -0,0 +1,46 @@ +#ifndef SPROUT_CONTAINER_INTERNAL_BEGIN_HPP +#define SPROUT_CONTAINER_INTERNAL_BEGIN_HPP + +#include +#include +#include +#include +#include +#include +#include + +namespace sprout { + // + // internal_begin + // + template + typename sprout::container_traits< + typename std::remove_reference< + typename sprout::containers::internal::type + >::type + >::iterator internal_begin(Container& cont) { + return sprout::begin(sprout::get_internal(cont)); + } + template + SPROUT_CONSTEXPR typename sprout::container_traits< + typename std::remove_reference< + typename sprout::containers::internal::type + >::type + >::const_iterator internal_begin(Container const& cont) { + return sprout::begin(sprout::get_internal(cont)); + } + + // + // internal_cbegin + // + template + SPROUT_CONSTEXPR typename sprout::container_traits< + typename std::remove_reference< + typename sprout::containers::internal::type + >::type + >::const_iterator internal_cbegin(Container const& cont) { + return sprout::begin(sprout::get_internal(cont)); + } +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_INTERNAL_BEGIN_HPP diff --git a/sprout/container/internal_begin_offset.hpp b/sprout/container/internal_begin_offset.hpp new file mode 100644 index 00000000..783838bc --- /dev/null +++ b/sprout/container/internal_begin_offset.hpp @@ -0,0 +1,20 @@ +#ifndef SPROUT_CONTAINER_INTERNAL_BEGIN_OFFSET_HPP +#define SPROUT_CONTAINER_INTERNAL_BEGIN_OFFSET_HPP + +#include +#include +#include +#include +#include HDR_ITERATOR_SSCRISK_CEL_OR_SPROUT_DETAIL + +namespace sprout { + // + // internal_begin_offset + // + template + SPROUT_CONSTEXPR typename sprout::container_traits::difference_type internal_begin_offset(Container const& cont) { + return NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::internal_begin(cont), sprout::begin(cont)); + } +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_INTERNAL_BEGIN_OFFSET_HPP diff --git a/sprout/container/internal_begin_offset_backward.hpp b/sprout/container/internal_begin_offset_backward.hpp new file mode 100644 index 00000000..24804ac8 --- /dev/null +++ b/sprout/container/internal_begin_offset_backward.hpp @@ -0,0 +1,20 @@ +#ifndef SPROUT_CONTAINER_INTERNAL_BEGIN_OFFSET_BACKWARD_HPP +#define SPROUT_CONTAINER_INTERNAL_BEGIN_OFFSET_BACKWARD_HPP + +#include +#include +#include +#include +#include HDR_ITERATOR_SSCRISK_CEL_OR_SPROUT_DETAIL + +namespace sprout { + // + // internal_begin_offset_backward + // + template + SPROUT_CONSTEXPR typename sprout::container_traits::difference_type internal_begin_offset_backward(Container const& cont) { + return NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), sprout::internal_end(cont)); + } +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_INTERNAL_BEGIN_OFFSET_BACKWARD_HPP diff --git a/sprout/container/internal_deep_copy.hpp b/sprout/container/internal_deep_copy.hpp new file mode 100644 index 00000000..ef92c5ef --- /dev/null +++ b/sprout/container/internal_deep_copy.hpp @@ -0,0 +1,29 @@ +#ifndef SPROUT_FIXED_CONTAINER_INTERNAL_DEEP_COPY_HPP +#define SPROUT_FIXED_CONTAINER_INTERNAL_DEEP_COPY_HPP + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace sprout { + // + // internal_deep_copy + // + template + SPROUT_CONSTEXPR inline typename sprout::container_construct_traits< + typename std::remove_reference< + typename sprout::containers::internal::type + >::type + >::copied_type internal_deep_copy(Container&& cont) { + return sprout::deep_copy( + sprout::get_internal(sprout::forward(cont)) + ); + } +} // namespace sprout + +#endif // #ifndef SPROUT_FIXED_CONTAINER_INTERNAL_DEEP_COPY_HPP diff --git a/sprout/container/internal_end.hpp b/sprout/container/internal_end.hpp new file mode 100644 index 00000000..203632b9 --- /dev/null +++ b/sprout/container/internal_end.hpp @@ -0,0 +1,46 @@ +#ifndef SPROUT_CONTAINER_INTERNAL_END_HPP +#define SPROUT_CONTAINER_INTERNAL_END_HPP + +#include +#include +#include +#include +#include +#include +#include + +namespace sprout { + // + // internal_end + // + template + typename sprout::container_traits< + typename std::remove_reference< + typename sprout::containers::internal::type + >::type + >::iterator internal_end(Container& cont) { + return sprout::end(sprout::get_internal(cont)); + } + template + SPROUT_CONSTEXPR typename sprout::container_traits< + typename std::remove_reference< + typename sprout::containers::internal::type + >::type + >::const_iterator internal_end(Container const& cont) { + return sprout::end(sprout::get_internal(cont)); + } + + // + // internal_cend + // + template + SPROUT_CONSTEXPR typename sprout::container_traits< + typename std::remove_reference< + typename sprout::containers::internal::type + >::type + >::const_iterator internal_cend(Container const& cont) { + return sprout::end(sprout::get_internal(cont)); + } +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_INTERNAL_END_HPP diff --git a/sprout/container/internal_end_offset.hpp b/sprout/container/internal_end_offset.hpp new file mode 100644 index 00000000..039c5b79 --- /dev/null +++ b/sprout/container/internal_end_offset.hpp @@ -0,0 +1,20 @@ +#ifndef SPROUT_CONTAINER_INTERNAL_END_OFFSET_HPP +#define SPROUT_CONTAINER_INTERNAL_END_OFFSET_HPP + +#include +#include +#include +#include +#include HDR_ITERATOR_SSCRISK_CEL_OR_SPROUT_DETAIL + +namespace sprout { + // + // internal_end_offset + // + template + SPROUT_CONSTEXPR typename sprout::container_traits::difference_type internal_end_offset(Container const& cont) { + return NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::internal_begin(cont), sprout::end(cont)); + } +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_INTERNAL_END_OFFSET_HPP diff --git a/sprout/container/internal_end_offset_backward.hpp b/sprout/container/internal_end_offset_backward.hpp new file mode 100644 index 00000000..2025aa7b --- /dev/null +++ b/sprout/container/internal_end_offset_backward.hpp @@ -0,0 +1,20 @@ +#ifndef SPROUT_CONTAINER_INTERNAL_END_OFFSET_BACKWARD_HPP +#define SPROUT_CONTAINER_INTERNAL_END_OFFSET_BACKWARD_HPP + +#include +#include +#include +#include +#include HDR_ITERATOR_SSCRISK_CEL_OR_SPROUT_DETAIL + +namespace sprout { + // + // internal_end_offset_backward + // + template + SPROUT_CONSTEXPR typename sprout::container_traits::difference_type internal_end_offset_backward(Container const& cont) { + return NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::end(cont), sprout::internal_end(cont)); + } +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_INTERNAL_END_OFFSET_BACKWARD_HPP diff --git a/sprout/container/iterator.hpp b/sprout/container/iterator.hpp new file mode 100644 index 00000000..80de35fb --- /dev/null +++ b/sprout/container/iterator.hpp @@ -0,0 +1,20 @@ +#ifndef SPROUT_CONTAINER_ITERATOR_HPP +#define SPROUT_CONTAINER_ITERATOR_HPP + +#include +#include + +namespace sprout { + namespace containers { + // + // iterator + // + template + struct iterator { + public: + typedef typename sprout::container_traits::iterator type; + }; + } // namespace containers +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_ITERATOR_HPP diff --git a/sprout/container/make.hpp b/sprout/container/make.hpp new file mode 100644 index 00000000..f7552add --- /dev/null +++ b/sprout/container/make.hpp @@ -0,0 +1,18 @@ +#ifndef SPROUT_CONTAINER_MAKE_HPP +#define SPROUT_CONTAINER_MAKE_HPP + +#include +#include +#include + +namespace sprout { + // + // make + // + template + SPROUT_CONSTEXPR inline typename sprout::container_construct_traits::copied_type make(Args&&... args) { + return sprout::container_construct_traits::make(sprout::forward(args)...); + } +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_MAKE_HPP diff --git a/sprout/container/metafunctions.hpp b/sprout/container/metafunctions.hpp new file mode 100644 index 00000000..e8708f1a --- /dev/null +++ b/sprout/container/metafunctions.hpp @@ -0,0 +1,19 @@ +#ifndef SPROUT_CONTAINER_METAFUNCTIONS_HPP +#define SPROUT_CONTAINER_METAFUNCTIONS_HPP + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif // #ifndef SPROUT_CONTAINER_METAFUNCTIONS_HPP diff --git a/sprout/container/pointer.hpp b/sprout/container/pointer.hpp new file mode 100644 index 00000000..51a64362 --- /dev/null +++ b/sprout/container/pointer.hpp @@ -0,0 +1,20 @@ +#ifndef SPROUT_CONTAINER_POINTER_HPP +#define SPROUT_CONTAINER_POINTER_HPP + +#include +#include + +namespace sprout { + namespace containers { + // + // pointer + // + template + struct pointer { + public: + typedef typename sprout::container_traits::pointer type; + }; + } // namespace containers +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_POINTER_HPP diff --git a/sprout/container/rebind_size.hpp b/sprout/container/rebind_size.hpp new file mode 100644 index 00000000..4b80521a --- /dev/null +++ b/sprout/container/rebind_size.hpp @@ -0,0 +1,20 @@ +#ifndef SPROUT_CONTAINER_REBIND_SIZE_HPP +#define SPROUT_CONTAINER_REBIND_SIZE_HPP + +#include +#include + +namespace sprout { + namespace containers { + // + // rebind_size + // + template::size_type Size> + struct rebind_size { + public: + typedef typename sprout::container_transform_traits::template rebind_size::type type; + }; + } // namespace containers +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_REBIND_SIZE_HPP diff --git a/sprout/container/reference.hpp b/sprout/container/reference.hpp new file mode 100644 index 00000000..2a7b53df --- /dev/null +++ b/sprout/container/reference.hpp @@ -0,0 +1,20 @@ +#ifndef SPROUT_CONTAINER_REFERENCE_HPP +#define SPROUT_CONTAINER_REFERENCE_HPP + +#include +#include + +namespace sprout { + namespace containers { + // + // reference + // + template + struct reference { + public: + typedef typename sprout::container_traits::reference type; + }; + } // namespace containers +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_REFERENCE_HPP diff --git a/sprout/container/remake.hpp b/sprout/container/remake.hpp new file mode 100644 index 00000000..5ad1b5d5 --- /dev/null +++ b/sprout/container/remake.hpp @@ -0,0 +1,29 @@ +#ifndef SPROUT_CONTAINER_REMAKE_HPP +#define SPROUT_CONTAINER_REMAKE_HPP + +#include +#include +#include +#include +#include + +namespace sprout { + // + // remake + // + template + SPROUT_CONSTEXPR inline typename sprout::container_construct_traits::copied_type remake( + Cont&& cont, + typename sprout::container_traits::difference_type size, + Args&&... args + ) + { + return sprout::container_construct_traits::remake( + sprout::forward(cont), + size, + sprout::forward(args)... + ); + } +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_REMAKE_HPP diff --git a/sprout/container/size.hpp b/sprout/container/size.hpp new file mode 100644 index 00000000..65ba69c1 --- /dev/null +++ b/sprout/container/size.hpp @@ -0,0 +1,20 @@ +#ifndef SPROUT_CONTAINER_SIZE_HPP +#define SPROUT_CONTAINER_SIZE_HPP + +#include +#include +#include +#include +#include HDR_ITERATOR_SSCRISK_CEL_OR_SPROUT_DETAIL + +namespace sprout { + // + // size + // + template + SPROUT_CONSTEXPR inline typename sprout::container_traits::difference_type size(Container const& cont) { + return NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(cont), sprout::end(cont)); + } +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_SIZE_HPP diff --git a/sprout/container/size_type.hpp b/sprout/container/size_type.hpp new file mode 100644 index 00000000..c6c4dad9 --- /dev/null +++ b/sprout/container/size_type.hpp @@ -0,0 +1,20 @@ +#ifndef SPROUT_CONTAINER_SIZE_TYPE_HPP +#define SPROUT_CONTAINER_SIZE_TYPE_HPP + +#include +#include + +namespace sprout { + namespace containers { + // + // size_type + // + template + struct size_type { + public: + typedef typename sprout::container_traits::size_type type; + }; + } // namespace containers +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_SIZE_TYPE_HPP diff --git a/sprout/container/static_size.hpp b/sprout/container/static_size.hpp new file mode 100644 index 00000000..4dfeef31 --- /dev/null +++ b/sprout/container/static_size.hpp @@ -0,0 +1,23 @@ +#ifndef SPROUT_CONTAINER_STATIC_SIZE_HPP +#define SPROUT_CONTAINER_STATIC_SIZE_HPP + +#include +#include +#include + +namespace sprout { + namespace containers { + // + // static_size + // + template + struct static_size + : public std::integral_constant< + typename sprout::container_traits::size_type, + sprout::container_traits::static_size + > + {}; + } // namespace containers +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_STATIC_SIZE_HPP diff --git a/sprout/container/sub_container_traits.hpp b/sprout/container/sub_container_traits.hpp new file mode 100644 index 00000000..571292d5 --- /dev/null +++ b/sprout/container/sub_container_traits.hpp @@ -0,0 +1,31 @@ +#ifndef SPROUT_CONTAINER_SUB_CONTAINER_TRAITS_HPP +#define SPROUT_CONTAINER_SUB_CONTAINER_TRAITS_HPP + +#include +#include + +namespace sprout { + // + // sub_container_traits + // + template + struct sub_container_traits { + public: + template + struct internal { + public: + typedef Cont&& type; + }; + public: + template + static SPROUT_CONSTEXPR typename internal::type get_internal(Cont&& cont) { + return sprout::forward(cont); + } + }; + template + struct sub_container_traits + : public sprout::sub_container_traits + {}; +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_SUB_CONTAINER_TRAITS_HPP diff --git a/sprout/container/traits.hpp b/sprout/container/traits.hpp new file mode 100644 index 00000000..4957fa67 --- /dev/null +++ b/sprout/container/traits.hpp @@ -0,0 +1,10 @@ +#ifndef SPROUT_CONTAINER_TRAITS_HPP +#define SPROUT_CONTAINER_TRAITS_HPP + +#include +#include +#include +#include +#include + +#endif // #ifndef SPROUT_CONTAINER_TRAITS_HPP diff --git a/sprout/container/value_type.hpp b/sprout/container/value_type.hpp new file mode 100644 index 00000000..5edf8642 --- /dev/null +++ b/sprout/container/value_type.hpp @@ -0,0 +1,20 @@ +#ifndef SPROUT_CONTAINER_VALUE_TYPE_HPP +#define SPROUT_CONTAINER_VALUE_TYPE_HPP + +#include +#include + +namespace sprout { + namespace containers { + // + // value_type + // + template + struct value_type { + public: + typedef typename sprout::container_traits::value_type type; + }; + } // namespace containers +} // namespace sprout + +#endif // #ifndef SPROUT_CONTAINER_VALUE_TYPE_HPP diff --git a/sprout/darkroom/colors/rgb.hpp b/sprout/darkroom/colors/rgb.hpp index 26968981..531675e5 100644 --- a/sprout/darkroom/colors/rgb.hpp +++ b/sprout/darkroom/colors/rgb.hpp @@ -63,7 +63,7 @@ namespace sprout { // template SPROUT_CONSTEXPR inline Color mul(Color const& lhs, Fac const& rhs) { - return sprout::tuples::remake_clone( + return sprout::tuples::remake( lhs, sprout::darkroom::colors::r(lhs) * rhs, sprout::darkroom::colors::g(lhs) * rhs, @@ -75,7 +75,7 @@ namespace sprout { // template SPROUT_CONSTEXPR inline Color1 add(Color1 const& lhs, Color2 const& rhs) { - return sprout::tuples::remake_clone( + return sprout::tuples::remake( lhs, sprout::darkroom::colors::r(lhs) + sprout::darkroom::colors::r(rhs), sprout::darkroom::colors::g(lhs) + sprout::darkroom::colors::g(rhs), @@ -87,7 +87,7 @@ namespace sprout { // template SPROUT_CONSTEXPR inline Color1 filter(Color1 const& lhs, Color2 const& rhs) { - return sprout::tuples::remake_clone( + return sprout::tuples::remake( lhs, sprout::darkroom::colors::r(lhs) * sprout::darkroom::colors::r(rhs), sprout::darkroom::colors::g(lhs) * sprout::darkroom::colors::g(rhs), @@ -101,7 +101,7 @@ namespace sprout { template SPROUT_CONSTEXPR inline RGB rgb_f_to_rgb(RGB_F const& col) { typedef typename sprout::darkroom::access::unit::type unit_type; - return sprout::tuples::make_clone( + return sprout::tuples::make( sprout::darkroom::colors::r(col) < 0 ? std::numeric_limits::min() : sprout::darkroom::colors::r(col) > 1 ? std::numeric_limits::max() : sprout::darkroom::colors::r(col) * std::numeric_limits::max() diff --git a/sprout/darkroom/coords/vector.hpp b/sprout/darkroom/coords/vector.hpp index 6f78be28..2b30be99 100644 --- a/sprout/darkroom/coords/vector.hpp +++ b/sprout/darkroom/coords/vector.hpp @@ -71,7 +71,7 @@ namespace sprout { // template SPROUT_CONSTEXPR inline Vector1 add(Vector1 const& lhs, Vector2 const& rhs) { - return sprout::tuples::remake_clone( + return sprout::tuples::remake( lhs, sprout::darkroom::coords::x(lhs) + sprout::darkroom::coords::x(rhs), sprout::darkroom::coords::y(lhs) + sprout::darkroom::coords::y(rhs), @@ -83,7 +83,7 @@ namespace sprout { // template SPROUT_CONSTEXPR inline Vector1 sub(Vector1 const& lhs, Vector2 const& rhs) { - return sprout::tuples::remake_clone( + return sprout::tuples::remake( lhs, sprout::darkroom::coords::x(lhs) - sprout::darkroom::coords::x(rhs), sprout::darkroom::coords::y(lhs) - sprout::darkroom::coords::y(rhs), @@ -95,7 +95,7 @@ namespace sprout { // template SPROUT_CONSTEXPR inline Vector scale(Vector const& lhs, Fac const& rhs) { - return sprout::tuples::remake_clone( + return sprout::tuples::remake( lhs, sprout::darkroom::coords::x(lhs) * rhs, sprout::darkroom::coords::y(lhs) * rhs, @@ -118,7 +118,7 @@ namespace sprout { // template SPROUT_CONSTEXPR inline Vector1 cross(Vector1 const& lhs, Vector2 const& rhs) { - return sprout::tuples::remake_clone( + return sprout::tuples::remake( lhs, sprout::darkroom::coords::y(lhs) * sprout::darkroom::coords::z(rhs) - sprout::darkroom::coords::z(lhs) * sprout::darkroom::coords::y(rhs) @@ -140,7 +140,7 @@ namespace sprout { typename sprout::darkroom::access::unit::type const& len ) { - return sprout::tuples::remake_clone( + return sprout::tuples::remake( vec, sprout::darkroom::coords::x(vec) / len, sprout::darkroom::coords::y(vec) / len, @@ -181,7 +181,7 @@ namespace sprout { // template SPROUT_CONSTEXPR Color normal_to_color(Normal const& nor) { - return sprout::tuples::make_clone( + return sprout::tuples::make( 0.5 + sprout::darkroom::coords::x(nor) * 0.5, 0.5 + sprout::darkroom::coords::y(nor) * 0.5, 0.5 + sprout::darkroom::coords::z(nor) * 0.5 diff --git a/sprout/darkroom/lights/point_light.hpp b/sprout/darkroom/lights/point_light.hpp index 59637475..c6f2684d 100644 --- a/sprout/darkroom/lights/point_light.hpp +++ b/sprout/darkroom/lights/point_light.hpp @@ -40,7 +40,7 @@ namespace sprout { unit_type const& intensity ) const { - return sprout::tuples::remake_clone( + return sprout::tuples::remake( col_, sprout::darkroom::colors::r(col_) * sprout::darkroom::colors::r( diff --git a/sprout/darkroom/objects/sphere.hpp b/sprout/darkroom/objects/sphere.hpp index ac4765dd..4a26b4ce 100644 --- a/sprout/darkroom/objects/sphere.hpp +++ b/sprout/darkroom/objects/sphere.hpp @@ -129,8 +129,8 @@ namespace sprout { return neg ? drittens_1(ray, sprout::darkroom::rays::point_of_intersection(ray, distance)) : drei_type( - sprout::tuples::make_clone(0, 0, 0), - sprout::tuples::make_clone(1, 1, 1) + sprout::tuples::make(0, 0, 0), + sprout::tuples::make(1, 1, 1) ) ; } diff --git a/sprout/darkroom/pixels/generate.hpp b/sprout/darkroom/pixels/generate.hpp index 2520e3a4..8abd97f8 100644 --- a/sprout/darkroom/pixels/generate.hpp +++ b/sprout/darkroom/pixels/generate.hpp @@ -5,8 +5,8 @@ #include #include #include -#include -#include +#include +#include #include namespace sprout { @@ -25,30 +25,30 @@ namespace sprout { typename Lights, sprout::index_t... XIndexes > - SPROUT_CONSTEXPR inline typename sprout::fixed_container_traits::value_type + SPROUT_CONSTEXPR inline typename sprout::container_traits::value_type generate_impl_line( RayTracer const& raytracer, Renderer const& renderer, Camera const& camera, Objects const& objs, Lights const& lights, - typename sprout::fixed_container_traits< - typename sprout::fixed_container_traits::value_type + typename sprout::container_traits< + typename sprout::container_traits::value_type >::size_type x , - typename sprout::fixed_container_traits::size_type y, - typename sprout::fixed_container_traits< - typename sprout::fixed_container_traits::value_type + typename sprout::container_traits::size_type y, + typename sprout::container_traits< + typename sprout::container_traits::value_type >::size_type width , - typename sprout::fixed_container_traits::size_type height, + typename sprout::container_traits::size_type height, std::size_t depth_max, sprout::index_tuple ) { - typedef typename sprout::fixed_container_traits::value_type pixel_line_type; - typedef typename sprout::fixed_container_traits::value_type pixel_type; - return sprout::make_clone( + typedef typename sprout::container_traits::value_type pixel_line_type; + typedef typename sprout::container_traits::value_type pixel_type; + return sprout::make( sprout::darkroom::colors::rgb_f_to_rgb( raytracer.template operator()( renderer, @@ -80,21 +80,21 @@ namespace sprout { Camera const& camera, Objects const& objs, Lights const& lights, - typename sprout::fixed_container_traits< - typename sprout::fixed_container_traits::value_type + typename sprout::container_traits< + typename sprout::container_traits::value_type >::size_type x , - typename sprout::fixed_container_traits::size_type y, - typename sprout::fixed_container_traits< - typename sprout::fixed_container_traits::value_type + typename sprout::container_traits::size_type y, + typename sprout::container_traits< + typename sprout::container_traits::value_type >::size_type width , - typename sprout::fixed_container_traits::size_type height, + typename sprout::container_traits::size_type height, std::size_t depth_max, sprout::index_tuple ) { - return sprout::make_clone( + return sprout::make( sprout::darkroom::pixels::detail::generate_impl_line( raytracer, renderer, @@ -108,9 +108,9 @@ namespace sprout { depth_max, typename sprout::index_range< 0, - sprout::fixed_container_traits< - typename sprout::fixed_container_traits::value_type - >::fixed_size + sprout::container_traits< + typename sprout::container_traits::value_type + >::static_size >::type() )... ); @@ -130,23 +130,23 @@ namespace sprout { Camera const& camera, Objects const& objs, Lights const& lights, - typename sprout::fixed_container_traits< - typename sprout::fixed_container_traits::value_type + typename sprout::container_traits< + typename sprout::container_traits::value_type >::size_type x = 0 , - typename sprout::fixed_container_traits::size_type y + typename sprout::container_traits::size_type y = 0 , - typename sprout::fixed_container_traits< - typename sprout::fixed_container_traits::value_type + typename sprout::container_traits< + typename sprout::container_traits::value_type >::size_type width - = sprout::fixed_container_traits< - typename sprout::fixed_container_traits::value_type - >::fixed_size + = sprout::container_traits< + typename sprout::container_traits::value_type + >::static_size , - typename sprout::fixed_container_traits::size_type height - = sprout::fixed_container_traits::fixed_size + typename sprout::container_traits::size_type height + = sprout::container_traits::static_size , std::size_t depth_max = 8 ) @@ -164,7 +164,7 @@ namespace sprout { depth_max, typename sprout::index_range< 0, - sprout::fixed_container_traits::fixed_size + sprout::container_traits::static_size >::type() ); } diff --git a/sprout/darkroom/renderers/whitted_style.hpp b/sprout/darkroom/renderers/whitted_style.hpp index 9d8cc8b7..350a46e5 100644 --- a/sprout/darkroom/renderers/whitted_style.hpp +++ b/sprout/darkroom/renderers/whitted_style.hpp @@ -47,7 +47,7 @@ namespace sprout { camera, objs, lights, - sprout::tuples::remake_clone( + sprout::tuples::remake( ray, sprout::darkroom::coords::add( sprout::darkroom::intersects::point_of_intersection(inter), @@ -106,7 +106,7 @@ namespace sprout { sprout::darkroom::intersects::normal(inter) ) ) - : sprout::tuples::make_clone(0, 0, 0) + : sprout::tuples::make(0, 0, 0) ; } }; diff --git a/sprout/detail/container_complate.hpp b/sprout/detail/container_complate.hpp index 373531d0..10e0c781 100644 --- a/sprout/detail/container_complate.hpp +++ b/sprout/detail/container_complate.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include @@ -12,74 +12,74 @@ namespace sprout { namespace detail { template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type container_complate_2( Result const& result, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type container_complate_2( Result const& result, Args const&... args ) { - return container_complate_2(result, args..., *sprout::next(sprout::fixed_begin(result), sizeof...(Args))); + return container_complate_2(result, args..., *sprout::next(sprout::internal_begin(result), sizeof...(Args))); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type container_complate_1( Result const& result, - typename sprout::fixed_container_traits::difference_type remain, + typename sprout::container_traits::difference_type remain, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type container_complate_1( Result const& result, - typename sprout::fixed_container_traits::difference_type remain, + typename sprout::container_traits::difference_type remain, Args const&... args ) { return remain != 0 - ? container_complate_1(result, remain - 1, *sprout::next(sprout::fixed_begin(result), remain - 1), args...) + ? container_complate_1(result, remain - 1, *sprout::next(sprout::internal_begin(result), remain - 1), args...) : container_complate_2(result, args...) ; } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type container_complate( Result const& result, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type container_complate( Result const& result, Args const&... args ) { - return container_complate_1(result, sprout::fixed_begin_offset(result), args...); + return container_complate_1(result, sprout::internal_begin_offset(result), args...); } } // namespace detail } // namespace sprout diff --git a/sprout/detail/container_complate_backward.hpp b/sprout/detail/container_complate_backward.hpp index 56718c87..c4d4d3ad 100644 --- a/sprout/detail/container_complate_backward.hpp +++ b/sprout/detail/container_complate_backward.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include @@ -12,74 +12,74 @@ namespace sprout { namespace detail { template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type container_complate_backward_2( Result const& result, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type container_complate_backward_2( Result const& result, Args const&... args ) { - return container_complate_backward_2(result, *sprout::prev(sprout::fixed_end(result), sizeof...(Args) + 1), args...); + return container_complate_backward_2(result, *sprout::prev(sprout::internal_end(result), sizeof...(Args) + 1), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type container_complate_backward_1( Result const& result, - typename sprout::fixed_container_traits::difference_type remain, + typename sprout::container_traits::difference_type remain, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type container_complate_backward_1( Result const& result, - typename sprout::fixed_container_traits::difference_type remain, + typename sprout::container_traits::difference_type remain, Args const&... args ) { return remain != 0 - ? container_complate_backward_1(result, remain - 1, args..., *sprout::prev(sprout::fixed_end(result), remain)) + ? container_complate_backward_1(result, remain - 1, args..., *sprout::prev(sprout::internal_end(result), remain)) : container_complate_backward_2(result, args...) ; } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type container_complate_backward( Result const& result, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type container_complate_backward( Result const& result, Args const&... args ) { - return container_complate_backward_1(result, sprout::fixed_end_offset_backward(result), args...); + return container_complate_backward_1(result, sprout::internal_end_offset_backward(result), args...); } } // namespace detail } // namespace sprout diff --git a/sprout/fixed_container.hpp b/sprout/fixed_container.hpp deleted file mode 100644 index ae09bf53..00000000 --- a/sprout/fixed_container.hpp +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_HPP -#define SPROUT_FIXED_CONTAINER_HPP - -#include -#include -#include -#include - -#endif // #ifndef SPROUT_FIXED_CONTAINER_HPP diff --git a/sprout/fixed_container/begin.hpp b/sprout/fixed_container/begin.hpp deleted file mode 100644 index 7ab6484e..00000000 --- a/sprout/fixed_container/begin.hpp +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_BEGIN_HPP -#define SPROUT_FIXED_CONTAINER_BEGIN_HPP - -#include -#include -#include - -namespace sprout { - // - // begin - // - template - typename sprout::fixed_container_traits::iterator begin(Range& range) { - return range.begin(); - } - template - typename sprout::fixed_container_traits::iterator begin(T (& arr)[N]) { - return arr; - } - // - // begin - // - template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits::const_iterator begin(Range const& range) { - return range.begin(); - } - template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits::const_iterator begin(T const (& arr)[N]) { - return arr; - } - - // - // cbegin - // - template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits::const_iterator cbegin(Range const& range) { - return range.begin(); - } - template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits::const_iterator cbegin(T const (& arr)[N]) { - return arr; - } -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_BEGIN_HPP diff --git a/sprout/fixed_container/clone.hpp b/sprout/fixed_container/clone.hpp deleted file mode 100644 index 184fe3e7..00000000 --- a/sprout/fixed_container/clone.hpp +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_CLONE_HPP -#define SPROUT_FIXED_CONTAINER_CLONE_HPP - -#include -#include -#include -#include - -namespace sprout { - // - // clone - // - template - SPROUT_CONSTEXPR inline typename sprout::fixed_container_traits< - typename std::remove_reference::type - >::clone_type clone(Container&& cont) { - typedef typename std::decay::type container_type; - return sprout::clone_functor().template operator()(sprout::forward(cont)); - } -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_CLONE_HPP diff --git a/sprout/fixed_container/const_iterator.hpp b/sprout/fixed_container/const_iterator.hpp deleted file mode 100644 index 9cb646e7..00000000 --- a/sprout/fixed_container/const_iterator.hpp +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_CONST_ITERATOR_HPP -#define SPROUT_FIXED_CONTAINER_CONST_ITERATOR_HPP - -#include -#include - -namespace sprout { - // - // fixed_const_iterator - // - template - struct fixed_const_iterator { - public: - typedef typename sprout::fixed_container_traits::const_iterator type; - }; -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_CONST_ITERATOR_HPP diff --git a/sprout/fixed_container/const_pointer.hpp b/sprout/fixed_container/const_pointer.hpp deleted file mode 100644 index 6dba0e78..00000000 --- a/sprout/fixed_container/const_pointer.hpp +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_CONST_POINTER_HPP -#define SPROUT_FIXED_CONTAINER_CONST_POINTER_HPP - -#include -#include - -namespace sprout { - // - // fixed_const_pointer - // - template - struct fixed_const_pointer { - public: - typedef typename sprout::fixed_container_traits::const_pointer type; - }; -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_CONST_POINTER_HPP diff --git a/sprout/fixed_container/const_reference.hpp b/sprout/fixed_container/const_reference.hpp deleted file mode 100644 index 92023226..00000000 --- a/sprout/fixed_container/const_reference.hpp +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_CONST_REFERENCE_HPP -#define SPROUT_FIXED_CONTAINER_CONST_REFERENCE_HPP - -#include -#include - -namespace sprout { - // - // fixed_const_reference - // - template - struct fixed_const_reference { - public: - typedef typename sprout::fixed_container_traits::const_reference type; - }; -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_CONST_REFERENCE_HPP diff --git a/sprout/fixed_container/difference_type.hpp b/sprout/fixed_container/difference_type.hpp deleted file mode 100644 index b0c6cba2..00000000 --- a/sprout/fixed_container/difference_type.hpp +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_DIFFERENCE_TYPE_HPP -#define SPROUT_FIXED_CONTAINER_DIFFERENCE_TYPE_HPP - -#include -#include - -namespace sprout { - // - // fixed_difference_type - // - template - struct fixed_difference_type { - public: - typedef typename sprout::fixed_container_traits::difference_type type; - }; -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_DIFFERENCE_TYPE_HPP diff --git a/sprout/fixed_container/empty.hpp b/sprout/fixed_container/empty.hpp deleted file mode 100644 index d75f75eb..00000000 --- a/sprout/fixed_container/empty.hpp +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_EMPTY_HPP -#define SPROUT_FIXED_CONTAINER_EMPTY_HPP - -#include -#include -#include - -namespace sprout { - // - // empty - // - template - SPROUT_CONSTEXPR bool empty(Range const& range) { - return sprout::size(range) == 0; - } -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_EMPTY_HPP diff --git a/sprout/fixed_container/end.hpp b/sprout/fixed_container/end.hpp deleted file mode 100644 index 8df3a935..00000000 --- a/sprout/fixed_container/end.hpp +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_END_HPP -#define SPROUT_FIXED_CONTAINER_END_HPP - -#include -#include -#include - -namespace sprout { - // - // end - // - template - typename sprout::fixed_container_traits::iterator end(Range& range) { - return range.end(); - } - template - typename sprout::fixed_container_traits::iterator end(T (& arr)[N]) { - return arr + N; - } - // - // end - // - template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits::const_iterator end(Range const& range) { - return range.end(); - } - template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits::const_iterator end(T const (& arr)[N]) { - return arr + N; - } - - // - // cend - // - template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits::const_iterator cend(Range const& range) { - return range.end(); - } - template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits::const_iterator cend(T const (& arr)[N]) { - return arr + N; - } -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_END_HPP diff --git a/sprout/fixed_container/fixed_begin.hpp b/sprout/fixed_container/fixed_begin.hpp deleted file mode 100644 index 1a1c94b2..00000000 --- a/sprout/fixed_container/fixed_begin.hpp +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_FIXED_BEGIN_HPP -#define SPROUT_FIXED_CONTAINER_FIXED_BEGIN_HPP - -#include -#include -#include -#include - -namespace sprout { - // - // fixed_begin - // - template - typename sprout::fixed_container_traits< - typename sprout::fixed_container_traits::fixed_container_type - >::iterator fixed_begin(Range& range) { - return sprout::begin(sprout::get_fixed(range)); - } - template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits< - typename sprout::fixed_container_traits::fixed_container_type - >::const_iterator fixed_begin(Range const& range) { - return sprout::begin(sprout::get_fixed(range)); - } - - // - // fixed_cbegin - // - template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits< - typename sprout::fixed_container_traits::fixed_container_type - >::const_iterator fixed_cbegin(Range const& range) { - return sprout::begin(sprout::get_fixed(range)); - } -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_FIXED_BEGIN_HPP diff --git a/sprout/fixed_container/fixed_begin_offset.hpp b/sprout/fixed_container/fixed_begin_offset.hpp deleted file mode 100644 index e4cdb89c..00000000 --- a/sprout/fixed_container/fixed_begin_offset.hpp +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_FIXED_BEGIN_OFFSET_HPP -#define SPROUT_FIXED_CONTAINER_FIXED_BEGIN_OFFSET_HPP - -#include -#include -#include -#include -#include HDR_ITERATOR_SSCRISK_CEL_OR_SPROUT_DETAIL - -namespace sprout { - // - // fixed_begin_offset - // - template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits::difference_type fixed_begin_offset(Range const& range) { - return NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::fixed_begin(range), sprout::begin(range)); - } -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_FIXED_BEGIN_OFFSET_HPP diff --git a/sprout/fixed_container/fixed_begin_offset_backward.hpp b/sprout/fixed_container/fixed_begin_offset_backward.hpp deleted file mode 100644 index 13181a50..00000000 --- a/sprout/fixed_container/fixed_begin_offset_backward.hpp +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_FIXED_BEGIN_OFFSET_BACKWARD_HPP -#define SPROUT_FIXED_CONTAINER_FIXED_BEGIN_OFFSET_BACKWARD_HPP - -#include -#include -#include -#include -#include HDR_ITERATOR_SSCRISK_CEL_OR_SPROUT_DETAIL - -namespace sprout { - // - // fixed_begin_offset_backward - // - template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits::difference_type fixed_begin_offset_backward(Range const& range) { - return NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(range), sprout::fixed_end(range)); - } -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_FIXED_BEGIN_OFFSET_BACKWARD_HPP diff --git a/sprout/fixed_container/fixed_container_type.hpp b/sprout/fixed_container/fixed_container_type.hpp deleted file mode 100644 index f0509c51..00000000 --- a/sprout/fixed_container/fixed_container_type.hpp +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_FIXED_CONTAINER_TYPE_HPP -#define SPROUT_FIXED_CONTAINER_FIXED_CONTAINER_TYPE_HPP - -#include -#include - -namespace sprout { - // - // fixed_container_type - // - template - struct fixed_container_type { - public: - typedef typename sprout::fixed_container_traits::fixed_container_type type; - }; -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_FIXED_CONTAINER_TYPE_HPP diff --git a/sprout/fixed_container/fixed_end.hpp b/sprout/fixed_container/fixed_end.hpp deleted file mode 100644 index 901f6415..00000000 --- a/sprout/fixed_container/fixed_end.hpp +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_FIXED_END_HPP -#define SPROUT_FIXED_CONTAINER_FIXED_END_HPP - -#include -#include -#include -#include - -namespace sprout { - // - // fixed_end - // - template - typename sprout::fixed_container_traits< - typename sprout::fixed_container_traits::fixed_container_type - >::iterator fixed_end(Range& range) { - return sprout::end(sprout::get_fixed(range)); - } - template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits< - typename sprout::fixed_container_traits::fixed_container_type - >::const_iterator fixed_end(Range const& range) { - return sprout::end(sprout::get_fixed(range)); - } - - // - // fixed_cend - // - template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits< - typename sprout::fixed_container_traits::fixed_container_type - >::const_iterator fixed_cend(Range const& range) { - return sprout::end(sprout::get_fixed(range)); - } -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_FIXED_END_HPP diff --git a/sprout/fixed_container/fixed_end_offset.hpp b/sprout/fixed_container/fixed_end_offset.hpp deleted file mode 100644 index 3d692311..00000000 --- a/sprout/fixed_container/fixed_end_offset.hpp +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_FIXED_END_OFFSET_HPP -#define SPROUT_FIXED_CONTAINER_FIXED_END_OFFSET_HPP - -#include -#include -#include -#include -#include HDR_ITERATOR_SSCRISK_CEL_OR_SPROUT_DETAIL - -namespace sprout { - // - // fixed_end_offset - // - template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits::difference_type fixed_end_offset(Range const& range) { - return NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::fixed_begin(range), sprout::end(range)); - } -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_FIXED_END_OFFSET_HPP diff --git a/sprout/fixed_container/fixed_end_offset_backward.hpp b/sprout/fixed_container/fixed_end_offset_backward.hpp deleted file mode 100644 index de7a301f..00000000 --- a/sprout/fixed_container/fixed_end_offset_backward.hpp +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_FIXED_END_OFFSET_BACKWARD_HPP -#define SPROUT_FIXED_CONTAINER_FIXED_END_OFFSET_BACKWARD_HPP - -#include -#include -#include -#include -#include HDR_ITERATOR_SSCRISK_CEL_OR_SPROUT_DETAIL - -namespace sprout { - // - // fixed_end_offset_backward - // - template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits::difference_type fixed_end_offset_backward(Range const& range) { - return NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::end(range), sprout::fixed_end(range)); - } -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_FIXED_END_OFFSET_BACKWARD_HPP diff --git a/sprout/fixed_container/fixed_size.hpp b/sprout/fixed_container/fixed_size.hpp deleted file mode 100644 index 266960d3..00000000 --- a/sprout/fixed_container/fixed_size.hpp +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_FIXED_SIZE_HPP -#define SPROUT_FIXED_CONTAINER_FIXED_SIZE_HPP - -#include -#include -#include - -namespace sprout { - // - // fixed_size - // - template - struct fixed_size { - public: - SPROUT_STATIC_CONSTEXPR typename sprout::fixed_container_traits::size_type value - = sprout::fixed_container_traits::fixed_size - ; - typedef std::integral_constant::size_type, value> type; - }; -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_FIXED_SIZE_HPP diff --git a/sprout/fixed_container/functions.hpp b/sprout/fixed_container/functions.hpp deleted file mode 100644 index 1311ceec..00000000 --- a/sprout/fixed_container/functions.hpp +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_FUNCTIONS_HPP -#define SPROUT_FIXED_CONTAINER_FUNCTIONS_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#endif // #ifndef SPROUT_FIXED_CONTAINER_FUNCTIONS_HPP diff --git a/sprout/fixed_container/get_fixed.hpp b/sprout/fixed_container/get_fixed.hpp deleted file mode 100644 index bb1a6096..00000000 --- a/sprout/fixed_container/get_fixed.hpp +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_GET_FIXED_HPP -#define SPROUT_FIXED_CONTAINER_GET_FIXED_HPP - -#include -#include - -namespace sprout { - // - // get_fixed - // - template - inline typename sprout::fixed_container_traits::fixed_container_type& get_fixed(Container& cont) { - return sprout::get_fixed_functor()(cont); - } - template - SPROUT_CONSTEXPR inline typename sprout::fixed_container_traits::fixed_container_type const& get_fixed(Container const& cont) { - return sprout::get_fixed_functor()(cont); - } - - // - // get_cfixed - // - template - SPROUT_CONSTEXPR inline typename sprout::fixed_container_traits::fixed_container_type const& get_cfixed(Container const& cont) { - return sprout::get_fixed_functor().template operator()(cont); - } - - // - // get_fixed_copy - // - template - SPROUT_CONSTEXPR inline typename sprout::fixed_container_traits::fixed_container_type get_fixed_copy(Container const& cont) { - return sprout::get_fixed_functor().template operator()(cont); - } -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_GET_FIXED_HPP diff --git a/sprout/fixed_container/iterator.hpp b/sprout/fixed_container/iterator.hpp deleted file mode 100644 index 4af9f06d..00000000 --- a/sprout/fixed_container/iterator.hpp +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_ITERATOR_HPP -#define SPROUT_FIXED_CONTAINER_ITERATOR_HPP - -#include -#include -#include - -namespace sprout { - // - // fixed_iterator - // - template - struct fixed_iterator { - public: - typedef typename std::conditional< - std::is_const::value, - typename sprout::fixed_container_traits::const_iterator, - typename sprout::fixed_container_traits::iterator - >::type type; - }; -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_ITERATOR_HPP diff --git a/sprout/fixed_container/make_clone.hpp b/sprout/fixed_container/make_clone.hpp deleted file mode 100644 index 6076a231..00000000 --- a/sprout/fixed_container/make_clone.hpp +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_MAKE_CLONE_HPP -#define SPROUT_FIXED_CONTAINER_MAKE_CLONE_HPP - -#include -#include -#include -#include - -namespace sprout { - // - // make_clone - // - template - SPROUT_CONSTEXPR inline typename sprout::fixed_container_traits< - typename std::remove_reference::type - >::clone_type make_clone(Args&&... args) { - typedef typename std::remove_reference::type container_type; - return sprout::make_clone_functor().template operator()(sprout::forward(args)...); - } -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_MAKE_CLONE_HPP diff --git a/sprout/fixed_container/metafunctions.hpp b/sprout/fixed_container/metafunctions.hpp deleted file mode 100644 index 881f5675..00000000 --- a/sprout/fixed_container/metafunctions.hpp +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_METAFUNCTIONS_HPP -#define SPROUT_FIXED_CONTAINER_METAFUNCTIONS_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#endif // #ifndef SPROUT_FIXED_CONTAINER_METAFUNCTIONS_HPP diff --git a/sprout/fixed_container/mutable_iterator.hpp b/sprout/fixed_container/mutable_iterator.hpp deleted file mode 100644 index dd3403c3..00000000 --- a/sprout/fixed_container/mutable_iterator.hpp +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_MUTABLE_ITERATOR_HPP -#define SPROUT_FIXED_CONTAINER_MUTABLE_ITERATOR_HPP - -#include -#include - -namespace sprout { - // - // fixed_mutable_iterator - // - template - struct fixed_mutable_iterator { - public: - typedef typename sprout::fixed_container_traits::iterator type; - }; -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_MUTABLE_ITERATOR_HPP diff --git a/sprout/fixed_container/mutable_pointer.hpp b/sprout/fixed_container/mutable_pointer.hpp deleted file mode 100644 index 00e9c317..00000000 --- a/sprout/fixed_container/mutable_pointer.hpp +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_MUTABLE_POINTER_HPP -#define SPROUT_FIXED_CONTAINER_MUTABLE_POINTER_HPP - -#include -#include - -namespace sprout { - // - // fixed_mutable_pointer - // - template - struct fixed_mutable_pointer { - public: - typedef typename sprout::fixed_container_traits::pointer type; - }; -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_MUTABLE_POINTER_HPP diff --git a/sprout/fixed_container/mutable_reference.hpp b/sprout/fixed_container/mutable_reference.hpp deleted file mode 100644 index 930ca604..00000000 --- a/sprout/fixed_container/mutable_reference.hpp +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_MUTABLE_REFERENCE_HPP -#define SPROUT_FIXED_CONTAINER_MUTABLE_REFERENCE_HPP - -#include -#include - -namespace sprout { - // - // fixed_mutable_reference - // - template - struct fixed_mutable_reference { - public: - typedef typename sprout::fixed_container_traits::reference type; - }; -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_MUTABLE_REFERENCE_HPP diff --git a/sprout/fixed_container/pointer.hpp b/sprout/fixed_container/pointer.hpp deleted file mode 100644 index 5d765645..00000000 --- a/sprout/fixed_container/pointer.hpp +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_POINTER_HPP -#define SPROUT_FIXED_CONTAINER_POINTER_HPP - -#include -#include -#include - -namespace sprout { - // - // fixed_pointer - // - template - struct fixed_pointer { - public: - typedef typename std::conditional< - std::is_const::value, - typename sprout::fixed_container_traits::const_pointer, - typename sprout::fixed_container_traits::pointer - >::type type; - }; -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_POINTER_HPP diff --git a/sprout/fixed_container/rebind_fixed_size_eval.hpp b/sprout/fixed_container/rebind_fixed_size_eval.hpp deleted file mode 100644 index ace9980f..00000000 --- a/sprout/fixed_container/rebind_fixed_size_eval.hpp +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_REBIND_FIXED_SIZE_EVAL_HPP -#define SPROUT_FIXED_CONTAINER_REBIND_FIXED_SIZE_EVAL_HPP - -#include -#include - -namespace sprout { - // - // rebind_fixed_size_eval - // - template::size_type S> - struct rebind_fixed_size_eval - : public rebind_fixed_size::template apply - {}; -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_REBIND_FIXED_SIZE_EVAL_HPP diff --git a/sprout/fixed_container/reference.hpp b/sprout/fixed_container/reference.hpp deleted file mode 100644 index c7d3bd22..00000000 --- a/sprout/fixed_container/reference.hpp +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_REFERENCE_HPP -#define SPROUT_FIXED_CONTAINER_REFERENCE_HPP - -#include -#include -#include - -namespace sprout { - // - // fixed_reference - // - template - struct fixed_reference { - public: - typedef typename std::conditional< - std::is_const::value, - typename sprout::fixed_container_traits::const_reference, - typename sprout::fixed_container_traits::reference - >::type type; - }; -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_REFERENCE_HPP diff --git a/sprout/fixed_container/remake_clone.hpp b/sprout/fixed_container/remake_clone.hpp deleted file mode 100644 index d0f5e020..00000000 --- a/sprout/fixed_container/remake_clone.hpp +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_REMAKE_CLONE_HPP -#define SPROUT_FIXED_CONTAINER_REMAKE_CLONE_HPP - -#include -#include -#include -#include - -namespace sprout { - // - // remake_clone - // - template - SPROUT_CONSTEXPR inline typename sprout::fixed_container_traits< - typename std::remove_reference::type - >::clone_type remake_clone( - Other&& other, - typename sprout::fixed_container_traits::difference_type size, - Args&&... args - ) - { - typedef typename std::remove_reference::type container_type; - return sprout::remake_clone_functor().template operator()( - sprout::forward(other), - size, - sprout::forward(args)... - ); - } -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_REMAKE_CLONE_HPP diff --git a/sprout/fixed_container/size.hpp b/sprout/fixed_container/size.hpp deleted file mode 100644 index 4ebbacb5..00000000 --- a/sprout/fixed_container/size.hpp +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_SIZE_HPP -#define SPROUT_FIXED_CONTAINER_SIZE_HPP - -#include -#include -#include -#include -#include HDR_ITERATOR_SSCRISK_CEL_OR_SPROUT_DETAIL - -namespace sprout { - // - // size - // - template - SPROUT_CONSTEXPR inline typename sprout::fixed_container_traits::difference_type size(Range const& range) { - return NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(range), sprout::end(range)); - } -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_SIZE_HPP diff --git a/sprout/fixed_container/size_type.hpp b/sprout/fixed_container/size_type.hpp deleted file mode 100644 index e8b1183e..00000000 --- a/sprout/fixed_container/size_type.hpp +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_SIZE_TYPE_HPP -#define SPROUT_FIXED_CONTAINER_SIZE_TYPE_HPP - -#include -#include - -namespace sprout { - // - // fixed_size_type - // - template - struct fixed_size_type { - public: - typedef typename sprout::fixed_container_traits::size_type type; - }; -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_SIZE_TYPE_HPP diff --git a/sprout/fixed_container/traits.hpp b/sprout/fixed_container/traits.hpp deleted file mode 100644 index fb6f4745..00000000 --- a/sprout/fixed_container/traits.hpp +++ /dev/null @@ -1,177 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_TRAITS_HPP -#define SPROUT_FIXED_CONTAINER_TRAITS_HPP - -#include -#include -#include -#include -#include - -namespace sprout { - namespace detail { - template - struct fixed_container_traits_base { - public: - typedef typename Container::value_type value_type; - typedef typename Container::iterator iterator; - typedef typename Container::const_iterator const_iterator; - typedef typename Container::reference reference; - typedef typename Container::const_reference const_reference; - typedef typename Container::size_type size_type; - typedef typename Container::difference_type difference_type; - typedef typename Container::pointer pointer; - typedef typename Container::const_pointer const_pointer; - }; - template - struct fixed_container_traits_base { - public: - typedef T value_type; - typedef T* iterator; - typedef T const* const_iterator; - typedef T& reference; - typedef T const& const_reference; - typedef std::size_t size_type; - typedef std::ptrdiff_t difference_type; - typedef T* pointer; - typedef T const* const_pointer; - }; - } // namespace detail - - // - // fixed_container_traits - // - template - struct fixed_container_traits - : public sprout::detail::fixed_container_traits_base - { - public: - typedef Container fixed_container_type; - typedef Container internal_type; - typedef Container clone_type; - public: - SPROUT_STATIC_CONSTEXPR typename sprout::detail::fixed_container_traits_base::size_type fixed_size - = std::tuple_size::type>::value - ; - }; - template - struct fixed_container_traits - : public sprout::fixed_container_traits - { - public: - typedef typename sprout::fixed_container_traits::const_iterator iterator; - typedef typename sprout::fixed_container_traits::const_reference reference; - typedef typename sprout::fixed_container_traits::const_pointer pointer; - }; - template - struct fixed_container_traits - : public sprout::detail::fixed_container_traits_base - { - public: - typedef T fixed_container_type[N]; - typedef T internal_type[N]; - typedef T clone_type[N]; - public: - SPROUT_STATIC_CONSTEXPR typename sprout::detail::fixed_container_traits_base::size_type fixed_size = N; - }; - template - struct fixed_container_traits - : public sprout::fixed_container_traits - { - public: - typedef typename sprout::fixed_container_traits::const_iterator iterator; - typedef typename sprout::fixed_container_traits::const_reference reference; - typedef typename sprout::fixed_container_traits::const_pointer pointer; - }; - - // - // rebind_fixed_size - // - template - struct rebind_fixed_size { - public: - template::size_type S> - struct apply; - }; - template - struct rebind_fixed_size { - public: - template::size_type S> - struct apply { - public: - typedef T type[S]; - }; - }; - - // - // get_fixed_functor - // - template - struct get_fixed_functor { - public: - typename sprout::fixed_container_traits::fixed_container_type& operator()(Container& cont) const { - return cont; - } - SPROUT_CONSTEXPR typename sprout::fixed_container_traits::fixed_container_type const& operator()(Container const& cont) const { - return cont; - } - }; - template - struct get_fixed_functor - : public sprout::get_fixed_functor - {}; - - // - // clone_functor - // - template - struct clone_functor { - public: - template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits::clone_type operator()(Other&& cont) const { - return typename sprout::fixed_container_traits::clone_type(sprout::forward(cont)); - } - }; - template - struct clone_functor - : public sprout::clone_functor - {}; - - // - // make_clone_functor - // - template - struct make_clone_functor { - public: - template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits::clone_type operator()(Args&&... args) const { - return typename sprout::fixed_container_traits::clone_type{{sprout::forward(args)...}}; - } - }; - template - struct make_clone_functor - : public sprout::make_clone_functor - {}; - - // - // remake_clone_functor - // - template - struct remake_clone_functor { - public: - template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits::clone_type operator()( - Other&& other, - typename sprout::fixed_container_traits::difference_type size, - Args&&... args - ) const - { - return sprout::make_clone_functor().template operator()(sprout::forward(args)...); - } - }; - template - struct remake_clone_functor - : public sprout::remake_clone_functor - {}; -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_TRAITS_HPP diff --git a/sprout/fixed_container/value_type.hpp b/sprout/fixed_container/value_type.hpp deleted file mode 100644 index ddb525e3..00000000 --- a/sprout/fixed_container/value_type.hpp +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef SPROUT_FIXED_CONTAINER_VALUE_TYPE_HPP -#define SPROUT_FIXED_CONTAINER_VALUE_TYPE_HPP - -#include -#include - -namespace sprout { - // - // fixed_value_type - // - template - struct fixed_value_type { - public: - typedef typename sprout::fixed_container_traits::value_type type; - }; -} // namespace sprout - -#endif // #ifndef SPROUT_FIXED_CONTAINER_VALUE_TYPE_HPP diff --git a/sprout/functional/dft/fit/dft.hpp b/sprout/functional/dft/fit/dft.hpp index 1955e803..7d96670d 100644 --- a/sprout/functional/dft/fit/dft.hpp +++ b/sprout/functional/dft/fit/dft.hpp @@ -2,8 +2,8 @@ #define SPROUT_FUNCTIONAL_DFT_FIT_DFT_HPP #include -#include -#include +#include +#include #include #include #include @@ -18,11 +18,11 @@ namespace sprout { InputIterator first, InputIterator last, Result const& result, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::dft(first, last, result)), + sprout::get_internal(sprout::fixed::dft(first, last, result)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last), sprout::size(result)) ); @@ -38,7 +38,7 @@ namespace sprout { Result const& result ) { - return sprout::fit::detail::dft_impl(first, last, result, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::dft_impl(first, last, result, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/functional/dft/fit/idft.hpp b/sprout/functional/dft/fit/idft.hpp index 3cfbe81d..7da15e25 100644 --- a/sprout/functional/dft/fit/idft.hpp +++ b/sprout/functional/dft/fit/idft.hpp @@ -2,8 +2,8 @@ #define SPROUT_FUNCTIONAL_DFT_FIT_IDFT_HPP #include -#include -#include +#include +#include #include #include #include @@ -18,11 +18,11 @@ namespace sprout { InputIterator first, InputIterator last, Result const& result, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::idft(first, last, result)), + sprout::get_internal(sprout::fixed::idft(first, last, result)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last), sprout::size(result)) ); @@ -38,7 +38,7 @@ namespace sprout { Result const& result ) { - return sprout::fit::detail::idft_impl(first, last, result, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::idft_impl(first, last, result, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/functional/dft/fixed/dft.hpp b/sprout/functional/dft/fixed/dft.hpp index ac14364e..8ead93c7 100644 --- a/sprout/functional/dft/fixed/dft.hpp +++ b/sprout/functional/dft/fixed/dft.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -19,17 +19,17 @@ namespace sprout { InputIterator last, Result const& result, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::size_type input_size + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::size_type input_size ) { - return sprout::remake_clone( + return sprout::remake( result, sprout::size(result), (Indexes >= offset && Indexes < offset + size && Indexes < offset + input_size ? sprout::detail::dft_element_impl(first, last, Indexes - offset, input_size) - : *sprout::next(sprout::fixed_begin(result), Indexes) + : *sprout::next(sprout::internal_begin(result), Indexes) )... ); } @@ -44,8 +44,8 @@ namespace sprout { first, last, result, - typename sprout::index_range<0, sprout::fixed_container_traits::fixed_size>::type(), - sprout::fixed_begin_offset(result), + typename sprout::index_range<0, sprout::container_traits::static_size>::type(), + sprout::internal_begin_offset(result), sprout::size(result), NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last) ); diff --git a/sprout/functional/dft/fixed/idft.hpp b/sprout/functional/dft/fixed/idft.hpp index 8a4a46d8..364f5cd1 100644 --- a/sprout/functional/dft/fixed/idft.hpp +++ b/sprout/functional/dft/fixed/idft.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -19,17 +19,17 @@ namespace sprout { InputIterator last, Result const& result, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::size_type input_size + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::size_type input_size ) { - return sprout::remake_clone( + return sprout::remake( result, sprout::size(result), (Indexes >= offset && Indexes < offset + size && Indexes < offset + input_size ? sprout::detail::idft_element_impl(first, last, Indexes - offset, input_size) - : *sprout::next(sprout::fixed_begin(result), Indexes) + : *sprout::next(sprout::internal_begin(result), Indexes) )... ); } @@ -44,8 +44,8 @@ namespace sprout { first, last, result, - typename sprout::index_range<0, sprout::fixed_container_traits::fixed_size>::type(), - sprout::fixed_begin_offset(result), + typename sprout::index_range<0, sprout::container_traits::static_size>::type(), + sprout::internal_begin_offset(result), sprout::size(result), NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last) ); diff --git a/sprout/functional/fft/fit/bitrev_table.hpp b/sprout/functional/fft/fit/bitrev_table.hpp index 30f6eeaf..b180f430 100644 --- a/sprout/functional/fft/fit/bitrev_table.hpp +++ b/sprout/functional/fft/fit/bitrev_table.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -15,11 +15,11 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type bitrev_table_impl( Container const& cont, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::bitrev_table(cont)), + sprout::get_internal(sprout::fixed::bitrev_table(cont)), offset, offset + sprout::size(cont) ); @@ -33,7 +33,7 @@ namespace sprout { Container const& cont ) { - return sprout::fit::detail::bitrev_table_impl(cont, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::bitrev_table_impl(cont, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/functional/fft/fixed/bitrev_table.hpp b/sprout/functional/fft/fixed/bitrev_table.hpp index 52f27abd..1489a522 100644 --- a/sprout/functional/fft/fixed/bitrev_table.hpp +++ b/sprout/functional/fft/fixed/bitrev_table.hpp @@ -5,8 +5,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -20,19 +20,19 @@ namespace sprout { Container const& cont, sprout::index_tuple, std::size_t bit_length, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::size_type size + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::size_type size ) { - return sprout::remake_clone( + return sprout::remake( cont, sprout::size(cont), (Indexes >= offset && Indexes < offset + size ? sprout::bit_reverse_in( - static_cast::value_type>(Indexes - offset), + static_cast::value_type>(Indexes - offset), bit_length ) - : *sprout::next(sprout::fixed_begin(cont), Indexes) + : *sprout::next(sprout::internal_begin(cont), Indexes) )... ); } @@ -47,12 +47,12 @@ namespace sprout { { return sprout::fixed::detail::bitrev_table_impl( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::fixed_size>::type(), + typename sprout::index_range<0, sprout::container_traits::static_size>::type(), sprout::empty(cont) ? 0 : sprout::bit_length(sprout::size(cont) - 1) , - sprout::fixed_begin_offset(cont), + sprout::internal_begin_offset(cont), sprout::size(cont) ); } diff --git a/sprout/iterator/index_iterator.hpp b/sprout/iterator/index_iterator.hpp index 95c098ef..d48b6abc 100644 --- a/sprout/iterator/index_iterator.hpp +++ b/sprout/iterator/index_iterator.hpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include #include @@ -18,23 +18,23 @@ namespace sprout { class index_iterator : public std::iterator< std::random_access_iterator_tag, - typename sprout::fixed_container_traits::type>::value_type, - typename sprout::fixed_container_traits::type>::difference_type, + typename sprout::container_traits::type>::value_type, + typename sprout::container_traits::type>::difference_type, typename std::conditional< std::is_const::type>::value, - typename sprout::fixed_container_traits::type>::const_pointer, - typename sprout::fixed_container_traits::type>::pointer + typename sprout::container_traits::type>::const_pointer, + typename sprout::container_traits::type>::pointer >::type, typename std::conditional< std::is_const::type>::value, - typename sprout::fixed_container_traits::type>::const_reference, - typename sprout::fixed_container_traits::type>::reference + typename sprout::container_traits::type>::const_reference, + typename sprout::container_traits::type>::reference >::type > { public: typedef Container container_type; - typedef typename sprout::fixed_container_traits::type> traits_type; + typedef typename sprout::container_traits::type> traits_type; typedef typename std::conditional< std::is_reference::value, typename std::decay::type const&, diff --git a/sprout/numeric/fit/adjacent_difference.hpp b/sprout/numeric/fit/adjacent_difference.hpp index 637e3ef3..d154080d 100644 --- a/sprout/numeric/fit/adjacent_difference.hpp +++ b/sprout/numeric/fit/adjacent_difference.hpp @@ -2,8 +2,8 @@ #define SPROUT_NUMERIC_FIT_ADJACENT_DIFFERENCE_HPP #include -#include -#include +#include +#include #include #include #include @@ -18,11 +18,11 @@ namespace sprout { InputIterator first, InputIterator last, Result const& result, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::adjacent_difference(first, last, result)), + sprout::get_internal(sprout::fixed::adjacent_difference(first, last, result)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last), sprout::size(result)) ); @@ -38,7 +38,7 @@ namespace sprout { Result const& result ) { - return sprout::fit::detail::adjacent_difference_impl(first, last, result, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::adjacent_difference_impl(first, last, result, sprout::internal_begin_offset(result)); } namespace detail { @@ -48,11 +48,11 @@ namespace sprout { InputIterator last, Result const& result, BinaryOperation binary_op, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::adjacent_difference(first, last, result, binary_op)), + sprout::get_internal(sprout::fixed::adjacent_difference(first, last, result, binary_op)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last), sprout::size(result)) ); @@ -69,7 +69,7 @@ namespace sprout { BinaryOperation binary_op ) { - return sprout::fit::detail::adjacent_difference_impl(first, last, result, binary_op, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::adjacent_difference_impl(first, last, result, binary_op, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/numeric/fit/iota.hpp b/sprout/numeric/fit/iota.hpp index b48a149c..ff6f6ff1 100644 --- a/sprout/numeric/fit/iota.hpp +++ b/sprout/numeric/fit/iota.hpp @@ -2,8 +2,8 @@ #define SPROUT_NUMERIC_FIT_IOTA_HPP #include -#include -#include +#include +#include #include #include #include @@ -15,11 +15,11 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type iota_impl( Container const& cont, T const& value, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::iota(cont, value)), + sprout::get_internal(sprout::fixed::iota(cont, value)), offset, offset + sprout::size(cont) ); @@ -34,7 +34,7 @@ namespace sprout { T const& value ) { - return sprout::fit::detail::iota_impl(cont, value, sprout::fixed_begin_offset(cont)); + return sprout::fit::detail::iota_impl(cont, value, sprout::internal_begin_offset(cont)); } } // namespace fit } // namespace sprout diff --git a/sprout/numeric/fit/partial_sum.hpp b/sprout/numeric/fit/partial_sum.hpp index 3f5cca59..e72a8e20 100644 --- a/sprout/numeric/fit/partial_sum.hpp +++ b/sprout/numeric/fit/partial_sum.hpp @@ -2,8 +2,8 @@ #define SPROUT_NUMERIC_FIT_PARTIAL_SUM_HPP #include -#include -#include +#include +#include #include #include #include @@ -18,11 +18,11 @@ namespace sprout { InputIterator first, InputIterator last, Result const& result, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::partial_sum(first, last, result)), + sprout::get_internal(sprout::fixed::partial_sum(first, last, result)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last), sprout::size(result)) ); @@ -38,7 +38,7 @@ namespace sprout { Result const& result ) { - return sprout::fit::detail::partial_sum_impl(first, last, result, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::partial_sum_impl(first, last, result, sprout::internal_begin_offset(result)); } namespace detail { @@ -48,11 +48,11 @@ namespace sprout { InputIterator last, Result const& result, BinaryOperation binary_op, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type offset ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::partial_sum(first, last, result, binary_op)), + sprout::get_internal(sprout::fixed::partial_sum(first, last, result, binary_op)), offset, offset + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::min(NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(first, last), sprout::size(result)) ); @@ -69,7 +69,7 @@ namespace sprout { BinaryOperation binary_op ) { - return sprout::fit::detail::partial_sum_impl(first, last, result, binary_op, sprout::fixed_begin_offset(result)); + return sprout::fit::detail::partial_sum_impl(first, last, result, binary_op, sprout::internal_begin_offset(result)); } } // namespace fit } // namespace sprout diff --git a/sprout/numeric/fixed/adjacent_difference.hpp b/sprout/numeric/fixed/adjacent_difference.hpp index bc5b9fcc..939c3817 100644 --- a/sprout/numeric/fixed/adjacent_difference.hpp +++ b/sprout/numeric/fixed/adjacent_difference.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include @@ -13,29 +13,29 @@ namespace sprout { namespace detail { template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type adjacent_difference_impl_1( InputIterator first, InputIterator last, Result const& result, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::value_type const& value, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::value_type const& value, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type adjacent_difference_impl_1( InputIterator first, InputIterator last, Result const& result, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::value_type const& value, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::value_type const& value, Args const&... args ) { @@ -46,26 +46,26 @@ namespace sprout { } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == 0, + sprout::container_traits::static_size == 0, typename sprout::fixed::result_of::algorithm::type >::type adjacent_difference_impl( InputIterator first, InputIterator last, Result const& result, - typename sprout::fixed_container_traits::size_type size + typename sprout::container_traits::size_type size ) { - return sprout::remake_clone(result, sprout::size(result)); + return sprout::remake(result, sprout::size(result)); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != 0, + sprout::container_traits::static_size != 0, typename sprout::fixed::result_of::algorithm::type >::type adjacent_difference_impl_1( InputIterator first, InputIterator last, Result const& result, - typename sprout::fixed_container_traits::size_type size + typename sprout::container_traits::size_type size ) { return first != last @@ -90,31 +90,31 @@ namespace sprout { namespace detail { template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args), + sprout::container_traits::static_size == sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type adjacent_difference_impl_1( InputIterator first, InputIterator last, Result const& result, BinaryOperation binary_op, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::value_type const& value, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::value_type const& value, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args), + sprout::container_traits::static_size != sizeof...(Args), typename sprout::fixed::result_of::algorithm::type >::type adjacent_difference_impl_1( InputIterator first, InputIterator last, Result const& result, BinaryOperation binary_op, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::value_type const& value, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::value_type const& value, Args const&... args ) { @@ -125,28 +125,28 @@ namespace sprout { } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == 0, + sprout::container_traits::static_size == 0, typename sprout::fixed::result_of::algorithm::type >::type adjacent_difference_impl( InputIterator first, InputIterator last, Result const& result, BinaryOperation binary_op, - typename sprout::fixed_container_traits::size_type size + typename sprout::container_traits::size_type size ) { - return sprout::remake_clone(result, sprout::size(result)); + return sprout::remake(result, sprout::size(result)); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != 0, + sprout::container_traits::static_size != 0, typename sprout::fixed::result_of::algorithm::type >::type adjacent_difference_impl_1( InputIterator first, InputIterator last, Result const& result, BinaryOperation binary_op, - typename sprout::fixed_container_traits::size_type size + typename sprout::container_traits::size_type size ) { return first != last diff --git a/sprout/numeric/fixed/iota.hpp b/sprout/numeric/fixed/iota.hpp index 03a5cd12..bda51561 100644 --- a/sprout/numeric/fixed/iota.hpp +++ b/sprout/numeric/fixed/iota.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include @@ -16,16 +16,16 @@ namespace sprout { Container const& cont, sprout::index_tuple, T value, - typename sprout::fixed_container_traits::difference_type offset, - typename sprout::fixed_container_traits::size_type size + typename sprout::container_traits::difference_type offset, + typename sprout::container_traits::size_type size ) { - return sprout::remake_clone( + return sprout::remake( cont, sprout::size(cont), (Indexes >= offset && Indexes < offset + size ? value + (Indexes - offset) - : *sprout::next(sprout::fixed_begin(cont), Indexes) + : *sprout::next(sprout::internal_begin(cont), Indexes) )... ); } @@ -41,9 +41,9 @@ namespace sprout { { return sprout::fixed::detail::iota_impl( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::fixed_size>::type(), + typename sprout::index_range<0, sprout::container_traits::static_size>::type(), value, - sprout::fixed_begin_offset(cont), + sprout::internal_begin_offset(cont), sprout::size(cont) ); } diff --git a/sprout/numeric/fixed/partial_sum.hpp b/sprout/numeric/fixed/partial_sum.hpp index 306889b7..dc1ef9c7 100644 --- a/sprout/numeric/fixed/partial_sum.hpp +++ b/sprout/numeric/fixed/partial_sum.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include @@ -13,29 +13,29 @@ namespace sprout { namespace detail { template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args) + 1, + sprout::container_traits::static_size == sizeof...(Args) + 1, typename sprout::fixed::result_of::algorithm::type >::type partial_sum_impl_1( InputIterator first, InputIterator last, Result const& result, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::value_type const& value, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::value_type const& value, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args) + 1, + sprout::container_traits::static_size != sizeof...(Args) + 1, typename sprout::fixed::result_of::algorithm::type >::type partial_sum_impl_1( InputIterator first, InputIterator last, Result const& result, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::value_type const& value, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::value_type const& value, Args const&... args ) { @@ -46,26 +46,26 @@ namespace sprout { } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == 0, + sprout::container_traits::static_size == 0, typename sprout::fixed::result_of::algorithm::type >::type partial_sum_impl( InputIterator first, InputIterator last, Result const& result, - typename sprout::fixed_container_traits::size_type size + typename sprout::container_traits::size_type size ) { - return sprout::remake_clone(result, sprout::size(result)); + return sprout::remake(result, sprout::size(result)); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != 0, + sprout::container_traits::static_size != 0, typename sprout::fixed::result_of::algorithm::type >::type partial_sum_impl_1( InputIterator first, InputIterator last, Result const& result, - typename sprout::fixed_container_traits::size_type size + typename sprout::container_traits::size_type size ) { return first != last @@ -90,31 +90,31 @@ namespace sprout { namespace detail { template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == sizeof...(Args) + 1, + sprout::container_traits::static_size == sizeof...(Args) + 1, typename sprout::fixed::result_of::algorithm::type >::type partial_sum_impl_1( InputIterator first, InputIterator last, Result const& result, BinaryOperation binary_op, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::value_type const& value, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::value_type const& value, Args const&... args ) { - return sprout::remake_clone(result, sprout::size(result), args...); + return sprout::remake(result, sprout::size(result), args...); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != sizeof...(Args) + 1, + sprout::container_traits::static_size != sizeof...(Args) + 1, typename sprout::fixed::result_of::algorithm::type >::type partial_sum_impl_1( InputIterator first, InputIterator last, Result const& result, BinaryOperation binary_op, - typename sprout::fixed_container_traits::size_type size, - typename sprout::fixed_container_traits::value_type const& value, + typename sprout::container_traits::size_type size, + typename sprout::container_traits::value_type const& value, Args const&... args ) { @@ -125,28 +125,28 @@ namespace sprout { } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size == 0, + sprout::container_traits::static_size == 0, typename sprout::fixed::result_of::algorithm::type >::type partial_sum_impl( InputIterator first, InputIterator last, Result const& result, BinaryOperation binary_op, - typename sprout::fixed_container_traits::size_type size + typename sprout::container_traits::size_type size ) { - return sprout::remake_clone(result, sprout::size(result)); + return sprout::remake(result, sprout::size(result)); } template SPROUT_CONSTEXPR inline typename std::enable_if< - sprout::fixed_container_traits::fixed_size != 0, + sprout::container_traits::static_size != 0, typename sprout::fixed::result_of::algorithm::type >::type partial_sum_impl_1( InputIterator first, InputIterator last, Result const& result, BinaryOperation binary_op, - typename sprout::fixed_container_traits::size_type size + typename sprout::container_traits::size_type size ) { return first != last diff --git a/sprout/operation/fit/append.hpp b/sprout/operation/fit/append.hpp index 01669270..57a12e32 100644 --- a/sprout/operation/fit/append.hpp +++ b/sprout/operation/fit/append.hpp @@ -2,8 +2,8 @@ #define SPROUT_OPERATION_FIT_APPEND_HPP #include -#include -#include +#include +#include #include #include @@ -17,7 +17,7 @@ namespace sprout { struct append { public: typedef sprout::sub_array< - typename sprout::fixed_container_traits< + typename sprout::container_traits< typename sprout::fixed::result_of::append::type >::internal_type > type; @@ -30,14 +30,14 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::append::type append( Container const& cont, - typename sprout::fixed_container_traits::const_iterator pos, + typename sprout::container_traits::const_iterator pos, Input const& input ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::append(cont, pos, input)), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) + sprout::size(input) + sprout::get_internal(sprout::fixed::append(cont, pos, input)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) + sprout::size(input) ); } // @@ -46,14 +46,14 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::append::type append( Container const& cont, - typename sprout::fixed_container_traits::difference_type pos, + typename sprout::container_traits::difference_type pos, Input const& input ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::append(cont, pos, input)), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) + sprout::size(input) + sprout::get_internal(sprout::fixed::append(cont, pos, input)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) + sprout::size(input) ); } } // namespace fit diff --git a/sprout/operation/fit/append_back.hpp b/sprout/operation/fit/append_back.hpp index 95cda077..cea32b09 100644 --- a/sprout/operation/fit/append_back.hpp +++ b/sprout/operation/fit/append_back.hpp @@ -2,8 +2,8 @@ #define SPROUT_OPERATION_FIT_APPEND_BACK_HPP #include -#include -#include +#include +#include #include #include @@ -16,7 +16,7 @@ namespace sprout { template struct append_back { typedef sprout::sub_array< - typename sprout::fixed_container_traits< + typename sprout::container_traits< typename sprout::fixed::result_of::append_back::type >::internal_type > type; @@ -33,9 +33,9 @@ namespace sprout { ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::append_back(cont, input)), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) + sprout::size(input) + sprout::get_internal(sprout::fixed::append_back(cont, input)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) + sprout::size(input) ); } } // namespace fit diff --git a/sprout/operation/fit/append_front.hpp b/sprout/operation/fit/append_front.hpp index 74e20274..3732aa7e 100644 --- a/sprout/operation/fit/append_front.hpp +++ b/sprout/operation/fit/append_front.hpp @@ -2,8 +2,8 @@ #define SPROUT_OPERATION_FIT_APPEND_FRONT_HPP #include -#include -#include +#include +#include #include #include @@ -16,7 +16,7 @@ namespace sprout { template struct append_front { typedef sprout::sub_array< - typename sprout::fixed_container_traits< + typename sprout::container_traits< typename sprout::fixed::result_of::append_front::type >::internal_type > type; @@ -33,9 +33,9 @@ namespace sprout { ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::append_front(cont, input)), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) + sprout::size(input) + sprout::get_internal(sprout::fixed::append_front(cont, input)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) + sprout::size(input) ); } } // namespace fit diff --git a/sprout/operation/fit/erase.hpp b/sprout/operation/fit/erase.hpp index faa65401..6ba2ac9c 100644 --- a/sprout/operation/fit/erase.hpp +++ b/sprout/operation/fit/erase.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include @@ -18,7 +18,7 @@ namespace sprout { struct erase { public: typedef sprout::sub_array< - typename sprout::fixed_container_traits< + typename sprout::container_traits< typename sprout::fixed::result_of::erase::type >::internal_type > type; @@ -31,13 +31,13 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::erase::type erase( Container const& cont, - typename sprout::fixed_container_traits::const_iterator pos + typename sprout::container_traits::const_iterator pos ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::erase(cont, pos)), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) - 1 + sprout::get_internal(sprout::fixed::erase(cont, pos)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) - 1 ); } // @@ -46,13 +46,13 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::erase::type erase( Container const& cont, - typename sprout::fixed_container_traits::difference_type pos + typename sprout::container_traits::difference_type pos ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::erase(cont, pos)), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) - 1 + sprout::get_internal(sprout::fixed::erase(cont, pos)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) - 1 ); } } // namespace fit diff --git a/sprout/operation/fit/erase_n.hpp b/sprout/operation/fit/erase_n.hpp index 85ee3c3e..89c673fc 100644 --- a/sprout/operation/fit/erase_n.hpp +++ b/sprout/operation/fit/erase_n.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include @@ -18,7 +18,7 @@ namespace sprout { struct erase_n { public: typedef sprout::sub_array< - typename sprout::fixed_container_traits< + typename sprout::container_traits< typename sprout::fixed::result_of::erase_n::type >::internal_type > type; @@ -31,13 +31,13 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::erase_n::type erase_n( Container const& cont, - typename sprout::fixed_container_traits::const_iterator pos + typename sprout::container_traits::const_iterator pos ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::erase_n(cont, pos)), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) - 1 + sprout::get_internal(sprout::fixed::erase_n(cont, pos)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) - 1 ); } // @@ -46,13 +46,13 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::erase_n::type erase_n( Container const& cont, - typename sprout::fixed_container_traits::difference_type pos + typename sprout::container_traits::difference_type pos ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::erase_n(cont, pos)), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) - 1 + sprout::get_internal(sprout::fixed::erase_n(cont, pos)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) - 1 ); } } // namespace fit diff --git a/sprout/operation/fit/insert.hpp b/sprout/operation/fit/insert.hpp index e6ee6d15..112c88a5 100644 --- a/sprout/operation/fit/insert.hpp +++ b/sprout/operation/fit/insert.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include @@ -18,7 +18,7 @@ namespace sprout { struct insert { public: typedef sprout::sub_array< - typename sprout::fixed_container_traits< + typename sprout::container_traits< typename sprout::fixed::result_of::insert::type >::internal_type > type; @@ -31,15 +31,15 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::insert::type insert( Container const& cont, - typename sprout::fixed_container_traits::const_iterator pos, + typename sprout::container_traits::const_iterator pos, T const& v, Values const&... values ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::insert(cont, pos, v, values...)), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) + 1 + sizeof...(Values) + sprout::get_internal(sprout::fixed::insert(cont, pos, v, values...)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) + 1 + sizeof...(Values) ); } // @@ -48,15 +48,15 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::insert::type insert( Container const& cont, - typename sprout::fixed_container_traits::difference_type pos, + typename sprout::container_traits::difference_type pos, T const& v, Values const&... values ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::insert(cont, pos, v, values...)), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) + 1 + sizeof...(Values) + sprout::get_internal(sprout::fixed::insert(cont, pos, v, values...)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) + 1 + sizeof...(Values) ); } } // namespace fit diff --git a/sprout/operation/fit/insert_n.hpp b/sprout/operation/fit/insert_n.hpp index 9d05ce2f..9c3c461d 100644 --- a/sprout/operation/fit/insert_n.hpp +++ b/sprout/operation/fit/insert_n.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include @@ -18,7 +18,7 @@ namespace sprout { struct insert_n { public: typedef sprout::sub_array< - typename sprout::fixed_container_traits< + typename sprout::container_traits< typename sprout::fixed::result_of::insert_n::type >::internal_type > type; @@ -31,15 +31,15 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::insert_n::type insert_n( Container const& cont, - typename sprout::fixed_container_traits::const_iterator pos, + typename sprout::container_traits::const_iterator pos, T const& v, Values const&... values ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::insert_n(cont, pos, v, values...)), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) + (1 + sizeof...(Values)) * N + sprout::get_internal(sprout::fixed::insert_n(cont, pos, v, values...)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) + (1 + sizeof...(Values)) * N ); } // @@ -48,15 +48,15 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::insert_n::type insert_n( Container const& cont, - typename sprout::fixed_container_traits::difference_type pos, + typename sprout::container_traits::difference_type pos, T const& v, Values const&... values ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::insert_n(cont, pos, v, values...)), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) + (1 + sizeof...(Values)) * N + sprout::get_internal(sprout::fixed::insert_n(cont, pos, v, values...)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) + (1 + sizeof...(Values)) * N ); } } // namespace fit diff --git a/sprout/operation/fit/pop_back.hpp b/sprout/operation/fit/pop_back.hpp index 22d5b348..413bf364 100644 --- a/sprout/operation/fit/pop_back.hpp +++ b/sprout/operation/fit/pop_back.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include @@ -18,7 +18,7 @@ namespace sprout { struct pop_back { public: typedef sprout::sub_array< - typename sprout::fixed_container_traits< + typename sprout::container_traits< typename sprout::fixed::result_of::pop_back::type >::internal_type > type; @@ -34,9 +34,9 @@ namespace sprout { ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::pop_back(cont)), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) - 1 + sprout::get_internal(sprout::fixed::pop_back(cont)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) - 1 ); } } // namespace fit diff --git a/sprout/operation/fit/pop_back_n.hpp b/sprout/operation/fit/pop_back_n.hpp index 0621e834..80217014 100644 --- a/sprout/operation/fit/pop_back_n.hpp +++ b/sprout/operation/fit/pop_back_n.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include @@ -18,7 +18,7 @@ namespace sprout { struct pop_back_n { public: typedef sprout::sub_array< - typename sprout::fixed_container_traits< + typename sprout::container_traits< typename sprout::fixed::result_of::pop_back_n::type >::internal_type > type; @@ -34,9 +34,9 @@ namespace sprout { ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::pop_back_n(cont)), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) - N + sprout::get_internal(sprout::fixed::pop_back_n(cont)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) - N ); } } // namespace fit diff --git a/sprout/operation/fit/pop_front.hpp b/sprout/operation/fit/pop_front.hpp index 18c06701..55698bbe 100644 --- a/sprout/operation/fit/pop_front.hpp +++ b/sprout/operation/fit/pop_front.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include @@ -18,7 +18,7 @@ namespace sprout { struct pop_front { public: typedef sprout::sub_array< - typename sprout::fixed_container_traits< + typename sprout::container_traits< typename sprout::fixed::result_of::pop_front::type >::internal_type > type; @@ -34,9 +34,9 @@ namespace sprout { ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::pop_front(cont)), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) - 1 + sprout::get_internal(sprout::fixed::pop_front(cont)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) - 1 ); } } // namespace fit diff --git a/sprout/operation/fit/pop_front_n.hpp b/sprout/operation/fit/pop_front_n.hpp index d96670c6..6dc55802 100644 --- a/sprout/operation/fit/pop_front_n.hpp +++ b/sprout/operation/fit/pop_front_n.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include @@ -18,7 +18,7 @@ namespace sprout { struct pop_front_n { public: typedef sprout::sub_array< - typename sprout::fixed_container_traits< + typename sprout::container_traits< typename sprout::fixed::result_of::pop_front_n::type >::internal_type > type; @@ -34,9 +34,9 @@ namespace sprout { ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::pop_front_n(cont)), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) - N + sprout::get_internal(sprout::fixed::pop_front_n(cont)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) - N ); } } // namespace fit diff --git a/sprout/operation/fit/push_back.hpp b/sprout/operation/fit/push_back.hpp index 3a653924..6a6502e2 100644 --- a/sprout/operation/fit/push_back.hpp +++ b/sprout/operation/fit/push_back.hpp @@ -2,8 +2,8 @@ #define SPROUT_OPERATION_FIT_PUSH_BACK_HPP #include -#include -#include +#include +#include #include #include @@ -17,7 +17,7 @@ namespace sprout { struct push_back { public: typedef sprout::sub_array< - typename sprout::fixed_container_traits< + typename sprout::container_traits< typename sprout::fixed::result_of::push_back::type >::internal_type > type; @@ -35,9 +35,9 @@ namespace sprout { ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::push_back(cont, v, values...)), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) + 1 + sizeof...(Values) + sprout::get_internal(sprout::fixed::push_back(cont, v, values...)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) + 1 + sizeof...(Values) ); } } // namespace fit diff --git a/sprout/operation/fit/push_back_n.hpp b/sprout/operation/fit/push_back_n.hpp index 85c9508b..57b91a14 100644 --- a/sprout/operation/fit/push_back_n.hpp +++ b/sprout/operation/fit/push_back_n.hpp @@ -2,8 +2,8 @@ #define SPROUT_OPERATION_FIT_PUSH_BACK_N_HPP #include -#include -#include +#include +#include #include #include @@ -17,7 +17,7 @@ namespace sprout { struct push_back_n { public: typedef sprout::sub_array< - typename sprout::fixed_container_traits< + typename sprout::container_traits< typename sprout::fixed::result_of::push_back_n::type >::internal_type > type; @@ -35,9 +35,9 @@ namespace sprout { ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::push_back_n(cont, v, values...)), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) + (1 + sizeof...(Values)) * N + sprout::get_internal(sprout::fixed::push_back_n(cont, v, values...)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) + (1 + sizeof...(Values)) * N ); } } // namespace fit diff --git a/sprout/operation/fit/push_front.hpp b/sprout/operation/fit/push_front.hpp index 3cd0e178..6f9d9539 100644 --- a/sprout/operation/fit/push_front.hpp +++ b/sprout/operation/fit/push_front.hpp @@ -2,8 +2,8 @@ #define SPROUT_OPERATION_FIT_PUSH_FRONT_HPP #include -#include -#include +#include +#include #include #include @@ -17,7 +17,7 @@ namespace sprout { struct push_front { public: typedef sprout::sub_array< - typename sprout::fixed_container_traits< + typename sprout::container_traits< typename sprout::fixed::result_of::push_front::type >::internal_type > type; @@ -35,9 +35,9 @@ namespace sprout { ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::push_front(cont, v, values...)), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) + 1 + sizeof...(Values) + sprout::get_internal(sprout::fixed::push_front(cont, v, values...)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) + 1 + sizeof...(Values) ); } } // namespace fit diff --git a/sprout/operation/fit/push_front_n.hpp b/sprout/operation/fit/push_front_n.hpp index 3851b542..f01b971f 100644 --- a/sprout/operation/fit/push_front_n.hpp +++ b/sprout/operation/fit/push_front_n.hpp @@ -2,8 +2,8 @@ #define SPROUT_OPERATION_FIT_PUSH_FRONT_N_HPP #include -#include -#include +#include +#include #include #include @@ -17,7 +17,7 @@ namespace sprout { struct push_front_n { public: typedef sprout::sub_array< - typename sprout::fixed_container_traits< + typename sprout::container_traits< typename sprout::fixed::result_of::push_front_n::type >::internal_type > type; @@ -35,9 +35,9 @@ namespace sprout { ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::push_front_n(cont, v, values...)), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) + (1 + sizeof...(Values)) * N + sprout::get_internal(sprout::fixed::push_front_n(cont, v, values...)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) + (1 + sizeof...(Values)) * N ); } } // namespace fit diff --git a/sprout/operation/fit/realign.hpp b/sprout/operation/fit/realign.hpp index 041733cf..87db9265 100644 --- a/sprout/operation/fit/realign.hpp +++ b/sprout/operation/fit/realign.hpp @@ -2,8 +2,8 @@ #define SPROUT_OPERATION_FIT_REALIGN_HPP #include -#include -#include +#include +#include #include #include @@ -17,7 +17,7 @@ namespace sprout { struct realign { public: typedef sprout::sub_array< - typename sprout::fixed_container_traits< + typename sprout::container_traits< typename sprout::fixed::result_of::realign::type >::internal_type > type; @@ -34,7 +34,7 @@ namespace sprout { ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::realign(cont, v)), + sprout::get_internal(sprout::fixed::realign(cont, v)), 0, sprout::size(cont) ); @@ -49,7 +49,7 @@ namespace sprout { ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::realign(cont)), + sprout::get_internal(sprout::fixed::realign(cont)), 0, sprout::size(cont) ); diff --git a/sprout/operation/fit/realign_to.hpp b/sprout/operation/fit/realign_to.hpp index ee823357..16b0e1dc 100644 --- a/sprout/operation/fit/realign_to.hpp +++ b/sprout/operation/fit/realign_to.hpp @@ -2,8 +2,8 @@ #define SPROUT_OPERATION_FIT_REALIGN_TO_HPP #include -#include -#include +#include +#include #include #include @@ -17,7 +17,7 @@ namespace sprout { struct realign_to { public: typedef sprout::sub_array< - typename sprout::fixed_container_traits< + typename sprout::container_traits< typename sprout::fixed::result_of::realign_to::type >::internal_type > type; @@ -34,7 +34,7 @@ namespace sprout { ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::realign_to(cont, v)), + sprout::get_internal(sprout::fixed::realign_to(cont, v)), 0, sprout::size(cont) ); @@ -49,7 +49,7 @@ namespace sprout { ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::realign_to(cont)), + sprout::get_internal(sprout::fixed::realign_to(cont)), 0, sprout::size(cont) ); diff --git a/sprout/operation/fit/resize.hpp b/sprout/operation/fit/resize.hpp index ad2e2e8a..4339a1de 100644 --- a/sprout/operation/fit/resize.hpp +++ b/sprout/operation/fit/resize.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include @@ -18,7 +18,7 @@ namespace sprout { struct resize { public: typedef sprout::sub_array< - typename sprout::fixed_container_traits< + typename sprout::container_traits< typename sprout::fixed::result_of::resize::type >::internal_type > type; @@ -35,9 +35,9 @@ namespace sprout { ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::resize(cont, v)), + sprout::get_internal(sprout::fixed::resize(cont, v)), 0, - sprout::fixed_container_traits::type>::fixed_size + sprout::container_traits::type>::static_size ); } @@ -50,9 +50,9 @@ namespace sprout { ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::resize(cont)), + sprout::get_internal(sprout::fixed::resize(cont)), 0, - sprout::fixed_container_traits::type>::fixed_size + sprout::container_traits::type>::static_size ); } } // namespace fit diff --git a/sprout/operation/fit/resize_backward.hpp b/sprout/operation/fit/resize_backward.hpp index 8c3d7452..4e4285c4 100644 --- a/sprout/operation/fit/resize_backward.hpp +++ b/sprout/operation/fit/resize_backward.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include @@ -18,7 +18,7 @@ namespace sprout { struct resize_backward { public: typedef sprout::sub_array< - typename sprout::fixed_container_traits< + typename sprout::container_traits< typename sprout::fixed::result_of::resize_backward::type >::internal_type > type; @@ -35,9 +35,9 @@ namespace sprout { ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::resize_backward(cont, v)), + sprout::get_internal(sprout::fixed::resize_backward(cont, v)), 0, - sprout::fixed_container_traits::type>::fixed_size + sprout::container_traits::type>::static_size ); } @@ -50,9 +50,9 @@ namespace sprout { ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::resize_backward(cont)), + sprout::get_internal(sprout::fixed::resize_backward(cont)), 0, - sprout::fixed_container_traits::type>::fixed_size + sprout::container_traits::type>::static_size ); } } // namespace fit diff --git a/sprout/operation/fit/set.hpp b/sprout/operation/fit/set.hpp index 15ea704e..311bb7c3 100644 --- a/sprout/operation/fit/set.hpp +++ b/sprout/operation/fit/set.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include @@ -18,7 +18,7 @@ namespace sprout { struct set { public: typedef sprout::sub_array< - typename sprout::fixed_container_traits< + typename sprout::container_traits< typename sprout::fixed::result_of::set::type >::internal_type > type; @@ -31,14 +31,14 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::set::type set( Container const& cont, - typename sprout::fixed_container_traits::const_iterator pos, + typename sprout::container_traits::const_iterator pos, T const& v ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::set(cont, pos, v)), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) + sprout::get_internal(sprout::fixed::set(cont, pos, v)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) ); } // @@ -47,14 +47,14 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::set::type set( Container const& cont, - typename sprout::fixed_container_traits::difference_type pos, + typename sprout::container_traits::difference_type pos, T const& v ) { return sprout::sub_copy( - sprout::get_fixed(sprout::fixed::set(cont, pos, v)), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) + sprout::get_internal(sprout::fixed::set(cont, pos, v)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) ); } } // namespace fit diff --git a/sprout/operation/fixed/append.hpp b/sprout/operation/fixed/append.hpp index 94a31692..916cd069 100644 --- a/sprout/operation/fixed/append.hpp +++ b/sprout/operation/fixed/append.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include HDR_ITERATOR_SSCRISK_CEL_OR_SPROUT_DETAIL @@ -17,10 +17,10 @@ namespace sprout { template struct append { public: - typedef typename sprout::rebind_fixed_size< + typedef typename sprout::container_transform_traits< Container - >::template apply< - sprout::fixed_container_traits::fixed_size + sprout::fixed_container_traits::fixed_size + >::template rebind_size< + sprout::container_traits::static_size + sprout::container_traits::static_size >::type type; }; } // namespace result_of @@ -30,22 +30,22 @@ namespace sprout { SPROUT_CONSTEXPR inline Result append_impl( Container const& cont, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type pos, - typename sprout::fixed_container_traits::difference_type size, + typename sprout::container_traits::difference_type pos, + typename sprout::container_traits::difference_type size, Input const& input ) { - return sprout::remake_clone( + return sprout::remake( cont, sprout::size(cont) + sprout::size(input), - (Indexes < sprout::fixed_container_traits::fixed_size + size + (Indexes < sprout::container_traits::static_size + size ? (Indexes < pos - ? *sprout::next(sprout::fixed_begin(cont), Indexes) + ? *sprout::next(sprout::internal_begin(cont), Indexes) : Indexes < pos + size ? *sprout::next(sprout::begin(input), Indexes - pos) - : *sprout::next(sprout::fixed_begin(cont), Indexes - size) + : *sprout::next(sprout::internal_begin(cont), Indexes - size) ) - : typename sprout::fixed_container_traits::value_type() + : typename sprout::container_traits::value_type() )... ); } @@ -56,14 +56,14 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::append::type append( Container const& cont, - typename sprout::fixed_container_traits::const_iterator pos, + typename sprout::container_traits::const_iterator pos, Input const& input ) { return sprout::fixed::detail::append_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::fixed_begin(cont), pos), + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::internal_begin(cont), pos), sprout::size(input), input ); @@ -74,14 +74,14 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::append::type append( Container const& cont, - typename sprout::fixed_container_traits::difference_type pos, + typename sprout::container_traits::difference_type pos, Input const& input ) { return sprout::fixed::detail::append_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::fixed_begin(cont), sprout::next(sprout::begin(cont), pos)), + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::internal_begin(cont), sprout::next(sprout::begin(cont), pos)), sprout::size(input), input ); diff --git a/sprout/operation/fixed/append_back.hpp b/sprout/operation/fixed/append_back.hpp index 892e35be..cfc0507e 100644 --- a/sprout/operation/fixed/append_back.hpp +++ b/sprout/operation/fixed/append_back.hpp @@ -4,8 +4,8 @@ #include #include #include -#include -#include +#include +#include #include namespace sprout { @@ -31,8 +31,8 @@ namespace sprout { { return sprout::fixed::detail::append_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), - sprout::fixed_end_offset(cont), + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), + sprout::internal_end_offset(cont), sprout::size(input), input ); diff --git a/sprout/operation/fixed/append_front.hpp b/sprout/operation/fixed/append_front.hpp index fad728ed..d0e9454d 100644 --- a/sprout/operation/fixed/append_front.hpp +++ b/sprout/operation/fixed/append_front.hpp @@ -4,8 +4,8 @@ #include #include #include -#include -#include +#include +#include #include namespace sprout { @@ -31,8 +31,8 @@ namespace sprout { { return sprout::fixed::detail::append_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), - sprout::fixed_begin_offset(cont), + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), + sprout::internal_begin_offset(cont), sprout::size(input), input ); diff --git a/sprout/operation/fixed/erase.hpp b/sprout/operation/fixed/erase.hpp index 3a110355..bab4f2e7 100644 --- a/sprout/operation/fixed/erase.hpp +++ b/sprout/operation/fixed/erase.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include HDR_ITERATOR_SSCRISK_CEL_OR_SPROUT_DETAIL @@ -16,12 +16,12 @@ namespace sprout { // template struct erase { - static_assert(sprout::fixed_container_traits::fixed_size >= 1, "fixed_size >= 1"); + static_assert(sprout::container_traits::static_size >= 1, "static_size >= 1"); public: - typedef typename sprout::rebind_fixed_size< + typedef typename sprout::container_transform_traits< Container - >::template apply< - sprout::fixed_container_traits::fixed_size - 1 + >::template rebind_size< + sprout::container_traits::static_size - 1 >::type type; }; } // namespace result_of @@ -31,18 +31,18 @@ namespace sprout { SPROUT_CONSTEXPR inline Result erase_impl( Container const& cont, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type pos + typename sprout::container_traits::difference_type pos ) { - return sprout::remake_clone( + return sprout::remake( cont, sprout::size(cont) - 1, - (Indexes < sprout::fixed_container_traits::fixed_size - 1 + (Indexes < sprout::container_traits::static_size - 1 ? (Indexes < pos - ? *sprout::next(sprout::fixed_begin(cont), Indexes) - : *sprout::next(sprout::fixed_begin(cont), Indexes + 1) + ? *sprout::next(sprout::internal_begin(cont), Indexes) + : *sprout::next(sprout::internal_begin(cont), Indexes + 1) ) - : typename sprout::fixed_container_traits::value_type() + : typename sprout::container_traits::value_type() )... ); } @@ -53,13 +53,13 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::erase::type erase( Container const& cont, - typename sprout::fixed_container_traits::const_iterator pos + typename sprout::container_traits::const_iterator pos ) { return sprout::fixed::detail::erase_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::fixed_begin(cont), pos) + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::internal_begin(cont), pos) ); } // @@ -68,13 +68,13 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::erase::type erase( Container const& cont, - typename sprout::fixed_container_traits::difference_type pos + typename sprout::container_traits::difference_type pos ) { return sprout::fixed::detail::erase_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::fixed_begin(cont), sprout::next(sprout::begin(cont), pos)) + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::internal_begin(cont), sprout::next(sprout::begin(cont), pos)) ); } } // namespace fixed diff --git a/sprout/operation/fixed/erase_n.hpp b/sprout/operation/fixed/erase_n.hpp index 8e716c15..4767de10 100644 --- a/sprout/operation/fixed/erase_n.hpp +++ b/sprout/operation/fixed/erase_n.hpp @@ -4,8 +4,8 @@ #include #include #include -#include -#include +#include +#include #include #include HDR_ITERATOR_SSCRISK_CEL_OR_SPROUT_DETAIL @@ -17,12 +17,12 @@ namespace sprout { // template struct erase_n { - static_assert(sprout::fixed_container_traits::fixed_size >= N, "fixed_size >= N"); + static_assert(sprout::container_traits::static_size >= N, "static_size >= N"); public: - typedef typename sprout::rebind_fixed_size< + typedef typename sprout::container_transform_traits< Container - >::template apply< - sprout::fixed_container_traits::fixed_size - N + >::template rebind_size< + sprout::container_traits::static_size - N >::type type; }; } // namespace result_of @@ -32,18 +32,18 @@ namespace sprout { SPROUT_CONSTEXPR inline Result erase_n_impl( Container const& cont, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type pos + typename sprout::container_traits::difference_type pos ) { - return sprout::remake_clone( + return sprout::remake( cont, sprout::size(cont) - N, - (Indexes < sprout::fixed_container_traits::fixed_size - N + (Indexes < sprout::container_traits::static_size - N ? (Indexes < pos - ? *sprout::next(sprout::fixed_begin(cont), Indexes) - : *sprout::next(sprout::fixed_begin(cont), Indexes + N) + ? *sprout::next(sprout::internal_begin(cont), Indexes) + : *sprout::next(sprout::internal_begin(cont), Indexes + N) ) - : typename sprout::fixed_container_traits::value_type() + : typename sprout::container_traits::value_type() )... ); } @@ -54,13 +54,13 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::erase_n::type erase_n( Container const& cont, - typename sprout::fixed_container_traits::const_iterator pos + typename sprout::container_traits::const_iterator pos ) { return sprout::fixed::detail::erase_n_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::fixed_begin(cont), pos) + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::internal_begin(cont), pos) ); } // @@ -69,13 +69,13 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::erase_n::type erase_n( Container const& cont, - typename sprout::fixed_container_traits::difference_type pos + typename sprout::container_traits::difference_type pos ) { return sprout::fixed::detail::erase_n_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::fixed_begin(cont), sprout::next(sprout::begin(cont), pos)) + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::internal_begin(cont), sprout::next(sprout::begin(cont), pos)) ); } } // namespace fixed diff --git a/sprout/operation/fixed/insert.hpp b/sprout/operation/fixed/insert.hpp index 5246ecc7..7e49cb41 100644 --- a/sprout/operation/fixed/insert.hpp +++ b/sprout/operation/fixed/insert.hpp @@ -4,8 +4,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include HDR_ITERATOR_SSCRISK_CEL_OR_SPROUT_DETAIL @@ -19,10 +19,10 @@ namespace sprout { template struct insert { public: - typedef typename sprout::rebind_fixed_size< + typedef typename sprout::container_transform_traits< Container - >::template apply< - sprout::fixed_container_traits::fixed_size + 1 + sizeof...(Values) + >::template rebind_size< + sprout::container_traits::static_size + 1 + sizeof...(Values) >::type type; }; } // namespace result_of @@ -32,22 +32,22 @@ namespace sprout { SPROUT_CONSTEXPR inline Result insert_impl( Container const& cont, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type pos, + typename sprout::container_traits::difference_type pos, T const& v, Values const&... values ) { - return sprout::remake_clone( + return sprout::remake( cont, sprout::size(cont) + 1 + sizeof...(Values), - (Indexes < sprout::fixed_container_traits::fixed_size + 1 + sizeof...(Values) + (Indexes < sprout::container_traits::static_size + 1 + sizeof...(Values) ? (Indexes < pos - ? *sprout::next(sprout::fixed_begin(cont), Indexes) + ? *sprout::next(sprout::internal_begin(cont), Indexes) : Indexes < pos + 1 + sizeof...(Values) - ? sprout::detail::param_at::value_type>(Indexes - pos, v, values...) - : *sprout::next(sprout::fixed_begin(cont), Indexes - (1 + sizeof...(Values))) + ? sprout::detail::param_at::value_type>(Indexes - pos, v, values...) + : *sprout::next(sprout::internal_begin(cont), Indexes - (1 + sizeof...(Values))) ) - : typename sprout::fixed_container_traits::value_type() + : typename sprout::container_traits::value_type() )... ); } @@ -58,15 +58,15 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::insert::type insert( Container const& cont, - typename sprout::fixed_container_traits::const_iterator pos, + typename sprout::container_traits::const_iterator pos, T const& v, Values const&... values ) { return sprout::fixed::detail::insert_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::fixed_begin(cont), pos), + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::internal_begin(cont), pos), v, values... ); @@ -77,15 +77,15 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::insert::type insert( Container const& cont, - typename sprout::fixed_container_traits::difference_type pos, + typename sprout::container_traits::difference_type pos, T const& v, Values const&... values ) { return sprout::fixed::detail::insert_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::fixed_begin(cont), sprout::next(sprout::begin(cont), pos)), + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::internal_begin(cont), sprout::next(sprout::begin(cont), pos)), v, values... ); diff --git a/sprout/operation/fixed/insert_n.hpp b/sprout/operation/fixed/insert_n.hpp index 058f1b8c..7681f84d 100644 --- a/sprout/operation/fixed/insert_n.hpp +++ b/sprout/operation/fixed/insert_n.hpp @@ -5,8 +5,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -21,10 +21,10 @@ namespace sprout { template struct insert_n { public: - typedef typename sprout::rebind_fixed_size< + typedef typename sprout::container_transform_traits< Container - >::template apply< - sprout::fixed_container_traits::fixed_size + (1 + sizeof...(Values)) * N + >::template rebind_size< + sprout::container_traits::static_size + (1 + sizeof...(Values)) * N >::type type; }; } // namespace result_of @@ -34,22 +34,22 @@ namespace sprout { SPROUT_CONSTEXPR inline Result insert_n_impl( Container const& cont, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type pos, + typename sprout::container_traits::difference_type pos, T const& v, Values const&... values ) { - return sprout::remake_clone( + return sprout::remake( cont, sprout::size(cont) + (1 + sizeof...(Values)) * N, - (Indexes < sprout::fixed_container_traits::fixed_size + (1 + sizeof...(Values)) * N + (Indexes < sprout::container_traits::static_size + (1 + sizeof...(Values)) * N ? (Indexes < pos - ? *(sprout::fixed_begin(cont) + Indexes) + ? *(sprout::internal_begin(cont) + Indexes) : Indexes < pos + (1 + sizeof...(Values)) * N - ? sprout::detail::param_at::value_type>((Indexes - pos) % (1 + sizeof...(Values)), v, values...) - : *sprout::next(sprout::fixed_begin(cont), Indexes - (1 + sizeof...(Values)) * N) + ? sprout::detail::param_at::value_type>((Indexes - pos) % (1 + sizeof...(Values)), v, values...) + : *sprout::next(sprout::internal_begin(cont), Indexes - (1 + sizeof...(Values)) * N) ) - : typename sprout::fixed_container_traits::value_type() + : typename sprout::container_traits::value_type() )... ); } @@ -60,15 +60,15 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::insert_n::type insert_n( Container const& cont, - typename sprout::fixed_container_traits::const_iterator pos, + typename sprout::container_traits::const_iterator pos, T const& v, Values const&... values ) { return sprout::fixed::detail::insert_n_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::fixed_begin(cont), pos), + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::internal_begin(cont), pos), v, values... ); @@ -79,15 +79,15 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::insert_n::type insert_n( Container const& cont, - typename sprout::fixed_container_traits::difference_type pos, + typename sprout::container_traits::difference_type pos, T const& v, Values const&... values ) { return sprout::fixed::detail::insert_n_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::fixed_begin(cont), sprout::next(sprout::begin(cont), pos)), + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::internal_begin(cont), sprout::next(sprout::begin(cont), pos)), v, values... ); diff --git a/sprout/operation/fixed/pop_back.hpp b/sprout/operation/fixed/pop_back.hpp index d662dc42..9d3cb219 100644 --- a/sprout/operation/fixed/pop_back.hpp +++ b/sprout/operation/fixed/pop_back.hpp @@ -4,8 +4,8 @@ #include #include #include -#include -#include +#include +#include #include namespace sprout { @@ -30,8 +30,8 @@ namespace sprout { { return sprout::fixed::detail::erase_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), - sprout::fixed_end_offset(cont) - 1 + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), + sprout::internal_end_offset(cont) - 1 ); } } // namespace fixed diff --git a/sprout/operation/fixed/pop_back_n.hpp b/sprout/operation/fixed/pop_back_n.hpp index 77e36380..615d5f63 100644 --- a/sprout/operation/fixed/pop_back_n.hpp +++ b/sprout/operation/fixed/pop_back_n.hpp @@ -4,8 +4,8 @@ #include #include #include -#include -#include +#include +#include #include namespace sprout { @@ -30,8 +30,8 @@ namespace sprout { { return sprout::fixed::detail::erase_n_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), - sprout::fixed_end_offset(cont) - N + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), + sprout::internal_end_offset(cont) - N ); } } // namespace fixed diff --git a/sprout/operation/fixed/pop_front.hpp b/sprout/operation/fixed/pop_front.hpp index 054328a1..b150af39 100644 --- a/sprout/operation/fixed/pop_front.hpp +++ b/sprout/operation/fixed/pop_front.hpp @@ -4,8 +4,8 @@ #include #include #include -#include -#include +#include +#include #include namespace sprout { @@ -30,8 +30,8 @@ namespace sprout { { return sprout::fixed::detail::erase_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), - sprout::fixed_begin_offset(cont) + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), + sprout::internal_begin_offset(cont) ); } } // namespace fixed diff --git a/sprout/operation/fixed/pop_front_n.hpp b/sprout/operation/fixed/pop_front_n.hpp index 5469ee04..ef8ca352 100644 --- a/sprout/operation/fixed/pop_front_n.hpp +++ b/sprout/operation/fixed/pop_front_n.hpp @@ -4,8 +4,8 @@ #include #include #include -#include -#include +#include +#include #include namespace sprout { @@ -30,8 +30,8 @@ namespace sprout { { return sprout::fixed::detail::erase_n_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), - sprout::fixed_begin_offset(cont) + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), + sprout::internal_begin_offset(cont) ); } } // namespace fixed diff --git a/sprout/operation/fixed/push_back.hpp b/sprout/operation/fixed/push_back.hpp index 20bdc56d..3e7b5b1c 100644 --- a/sprout/operation/fixed/push_back.hpp +++ b/sprout/operation/fixed/push_back.hpp @@ -4,8 +4,8 @@ #include #include #include -#include -#include +#include +#include #include namespace sprout { @@ -32,8 +32,8 @@ namespace sprout { { return sprout::fixed::detail::insert_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), - sprout::fixed_end_offset(cont), + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), + sprout::internal_end_offset(cont), v, values... ); diff --git a/sprout/operation/fixed/push_back_n.hpp b/sprout/operation/fixed/push_back_n.hpp index 8aa16fc8..511243b4 100644 --- a/sprout/operation/fixed/push_back_n.hpp +++ b/sprout/operation/fixed/push_back_n.hpp @@ -4,8 +4,8 @@ #include #include #include -#include -#include +#include +#include #include namespace sprout { @@ -32,8 +32,8 @@ namespace sprout { { return sprout::fixed::detail::insert_n_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), - sprout::fixed_end_offset(cont), + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), + sprout::internal_end_offset(cont), v, values... ); diff --git a/sprout/operation/fixed/push_front.hpp b/sprout/operation/fixed/push_front.hpp index 505ecce6..9253da72 100644 --- a/sprout/operation/fixed/push_front.hpp +++ b/sprout/operation/fixed/push_front.hpp @@ -4,8 +4,8 @@ #include #include #include -#include -#include +#include +#include #include namespace sprout { @@ -32,8 +32,8 @@ namespace sprout { { return sprout::fixed::detail::insert_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), - sprout::fixed_begin_offset(cont), + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), + sprout::internal_begin_offset(cont), v, values... ); diff --git a/sprout/operation/fixed/push_front_n.hpp b/sprout/operation/fixed/push_front_n.hpp index 8c691f8d..83370eb9 100644 --- a/sprout/operation/fixed/push_front_n.hpp +++ b/sprout/operation/fixed/push_front_n.hpp @@ -4,8 +4,8 @@ #include #include #include -#include -#include +#include +#include #include namespace sprout { @@ -32,8 +32,8 @@ namespace sprout { { return sprout::fixed::detail::insert_n_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), - sprout::fixed_begin_offset(cont), + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), + sprout::internal_begin_offset(cont), v, values... ); diff --git a/sprout/operation/fixed/realign.hpp b/sprout/operation/fixed/realign.hpp index 18d87829..749561fa 100644 --- a/sprout/operation/fixed/realign.hpp +++ b/sprout/operation/fixed/realign.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include namespace sprout { @@ -16,7 +16,7 @@ namespace sprout { template struct realign { public: - typedef typename sprout::fixed_container_traits::clone_type type; + typedef typename sprout::container_construct_traits::copied_type type; }; } // namespace result_of @@ -25,11 +25,11 @@ namespace sprout { SPROUT_CONSTEXPR inline Result realign_impl( Container const& cont, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type size, + typename sprout::container_traits::difference_type size, T const& v ) { - return sprout::make_clone( + return sprout::make( (Indexes < size ? *sprout::next(sprout::begin(cont), Indexes) : v @@ -48,7 +48,7 @@ namespace sprout { { return sprout::fixed::detail::realign_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), sprout::size(cont), v ); @@ -59,13 +59,13 @@ namespace sprout { SPROUT_CONSTEXPR inline Result realign_impl( Container const& cont, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type size + typename sprout::container_traits::difference_type size ) { - return sprout::make_clone( + return sprout::make( (Indexes < size ? *sprout::next(sprout::begin(cont), Indexes) - : typename sprout::fixed_container_traits::value_type() + : typename sprout::container_traits::value_type() )... ); } @@ -80,7 +80,7 @@ namespace sprout { { return sprout::fixed::detail::realign_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), sprout::size(cont) ); } diff --git a/sprout/operation/fixed/realign_to.hpp b/sprout/operation/fixed/realign_to.hpp index cee4e771..b5777b66 100644 --- a/sprout/operation/fixed/realign_to.hpp +++ b/sprout/operation/fixed/realign_to.hpp @@ -4,8 +4,8 @@ #include #include #include -#include -#include +#include +#include #include namespace sprout { @@ -17,7 +17,7 @@ namespace sprout { template struct realign_to { public: - typedef typename sprout::fixed_container_traits::clone_type type; + typedef typename sprout::container_construct_traits::copied_type type; }; } // namespace result_of @@ -32,7 +32,7 @@ namespace sprout { { return sprout::fixed::detail::realign_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), sprout::size(cont), v ); @@ -48,7 +48,7 @@ namespace sprout { { return sprout::fixed::detail::realign_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), sprout::size(cont) ); } diff --git a/sprout/operation/fixed/resize.hpp b/sprout/operation/fixed/resize.hpp index c8b5cf4e..7f96846f 100644 --- a/sprout/operation/fixed/resize.hpp +++ b/sprout/operation/fixed/resize.hpp @@ -4,8 +4,8 @@ #include #include #include -#include -#include +#include +#include #include namespace sprout { @@ -17,9 +17,9 @@ namespace sprout { template struct resize { public: - typedef typename sprout::rebind_fixed_size< + typedef typename sprout::container_transform_traits< Container - >::template apply< + >::template rebind_size< N >::type type; }; @@ -30,11 +30,11 @@ namespace sprout { SPROUT_CONSTEXPR inline Result resize_impl( Container const& cont, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type size, + typename sprout::container_traits::difference_type size, T const& v ) { - return sprout::make_clone( + return sprout::make( (Indexes < size ? *sprout::next(sprout::begin(cont), Indexes) : v @@ -53,7 +53,7 @@ namespace sprout { { return sprout::fixed::detail::resize_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), sprout::size(cont), v ); @@ -64,13 +64,13 @@ namespace sprout { SPROUT_CONSTEXPR inline Result resize_impl( Container const& cont, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type size + typename sprout::container_traits::difference_type size ) { - return sprout::make_clone( + return sprout::make( (Indexes < size ? *sprout::next(sprout::begin(cont), Indexes) - : typename sprout::fixed_container_traits::value_type() + : typename sprout::container_traits::value_type() )... ); } @@ -84,7 +84,7 @@ namespace sprout { ) { return sprout::fixed::detail::resize_impl::type>( - cont, typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), + cont, typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), sprout::size(cont) ); } diff --git a/sprout/operation/fixed/resize_backward.hpp b/sprout/operation/fixed/resize_backward.hpp index 1dcffb65..e3866f93 100644 --- a/sprout/operation/fixed/resize_backward.hpp +++ b/sprout/operation/fixed/resize_backward.hpp @@ -4,8 +4,8 @@ #include #include #include -#include -#include +#include +#include #include #include @@ -26,12 +26,12 @@ namespace sprout { SPROUT_CONSTEXPR inline Result resize_backward_impl( Container const& cont, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type size, - typename sprout::fixed_container_traits::difference_type offset, + typename sprout::container_traits::difference_type size, + typename sprout::container_traits::difference_type offset, T const& v ) { - return sprout::make_clone( + return sprout::make( (Indexes >= offset && Indexes < offset + size ? *sprout::next(sprout::begin(cont), Indexes - offset) : v @@ -50,10 +50,10 @@ namespace sprout { { return sprout::fixed::detail::resize_backward_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), sprout::size(cont), - static_cast::difference_type>( - sprout::fixed_container_traits::type>::fixed_size + static_cast::difference_type>( + sprout::container_traits::type>::static_size ) - sprout::size(cont), v @@ -65,14 +65,14 @@ namespace sprout { SPROUT_CONSTEXPR inline Result resize_backward_impl( Container const& cont, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type size, - typename sprout::fixed_container_traits::difference_type offset + typename sprout::container_traits::difference_type size, + typename sprout::container_traits::difference_type offset ) { - return sprout::make_clone( + return sprout::make( (Indexes >= offset && Indexes < offset + size ? *sprout::next(sprout::begin(cont), Indexes - offset) - : typename sprout::fixed_container_traits::value_type() + : typename sprout::container_traits::value_type() )... ); } @@ -87,10 +87,10 @@ namespace sprout { { return sprout::fixed::detail::resize_backward_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), sprout::size(cont), - static_cast::difference_type>( - sprout::fixed_container_traits::type>::fixed_size + static_cast::difference_type>( + sprout::container_traits::type>::static_size ) - sprout::size(cont) ); diff --git a/sprout/operation/fixed/set.hpp b/sprout/operation/fixed/set.hpp index c17feea2..b0cebf9d 100644 --- a/sprout/operation/fixed/set.hpp +++ b/sprout/operation/fixed/set.hpp @@ -3,8 +3,8 @@ #include #include -#include -#include +#include +#include #include #include HDR_ITERATOR_SSCRISK_CEL_OR_SPROUT_DETAIL @@ -17,7 +17,7 @@ namespace sprout { template struct set { public: - typedef typename sprout::fixed_container_traits::clone_type type; + typedef typename sprout::container_construct_traits::copied_type type; }; } // namespace result_of @@ -26,15 +26,15 @@ namespace sprout { SPROUT_CONSTEXPR inline Result set_impl( Container const& cont, sprout::index_tuple, - typename sprout::fixed_container_traits::difference_type pos, + typename sprout::container_traits::difference_type pos, T const& v ) { - return sprout::remake_clone( + return sprout::remake( cont, sprout::size(cont), (Indexes != pos - ? *sprout::next(sprout::fixed_begin(cont), Indexes) + ? *sprout::next(sprout::internal_begin(cont), Indexes) : v )... ); @@ -46,14 +46,14 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::set::type set( Container const& cont, - typename sprout::fixed_container_traits::const_iterator pos, + typename sprout::container_traits::const_iterator pos, T const& v ) { return sprout::fixed::detail::set_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::fixed_begin(cont), pos), + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::internal_begin(cont), pos), v ); } @@ -63,14 +63,14 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::set::type set( Container const& cont, - typename sprout::fixed_container_traits::difference_type pos, + typename sprout::container_traits::difference_type pos, T const& v ) { return sprout::fixed::detail::set_impl::type>( cont, - typename sprout::index_range<0, sprout::fixed_container_traits::type>::fixed_size>::type(), - NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::fixed_begin(cont), sprout::next(sprout::begin(cont), pos)), + typename sprout::index_range<0, sprout::container_traits::type>::static_size>::type(), + NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::internal_begin(cont), sprout::next(sprout::begin(cont), pos)), v ); } diff --git a/sprout/pit.hpp b/sprout/pit.hpp index d41c0b38..9288f969 100644 --- a/sprout/pit.hpp +++ b/sprout/pit.hpp @@ -5,8 +5,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -19,23 +19,19 @@ namespace sprout { class pit { public: typedef Container container_type; - typedef pit fixed_container_type; - typedef container_type internal_type; - typedef typename sprout::fixed_container_traits::clone_type clone_type; - typedef typename sprout::fixed_container_traits::value_type value_type; - typedef typename sprout::fixed_container_traits::reference reference; - typedef typename sprout::fixed_container_traits::const_reference const_reference; + typedef typename sprout::container_traits::value_type value_type; + typedef typename sprout::container_traits::reference reference; + typedef typename sprout::container_traits::const_reference const_reference; typedef typename sprout::value_iterator iterator; typedef typename sprout::value_iterator const_iterator; - typedef typename sprout::fixed_container_traits::size_type size_type; - typedef typename sprout::fixed_container_traits::difference_type difference_type; - typedef typename sprout::fixed_container_traits::pointer pointer; - typedef typename sprout::fixed_container_traits::const_pointer const_pointer; + typedef typename sprout::container_traits::size_type size_type; + typedef typename sprout::container_traits::difference_type difference_type; + typedef typename sprout::container_traits::pointer pointer; + typedef typename sprout::container_traits::const_pointer const_pointer; typedef typename sprout::reverse_iterator reverse_iterator; typedef typename sprout::reverse_iterator const_reverse_iterator; public: - SPROUT_STATIC_CONSTEXPR size_type static_size = sprout::fixed_container_traits::fixed_size; - SPROUT_STATIC_CONSTEXPR size_type fixed_size = static_size; + SPROUT_STATIC_CONSTEXPR size_type static_size = sprout::container_traits::static_size; public: value_type elem; public: @@ -131,8 +127,6 @@ namespace sprout { }; template SPROUT_CONSTEXPR typename sprout::pit::size_type sprout::pit::static_size; - template - SPROUT_CONSTEXPR typename sprout::pit::size_type sprout::pit::fixed_size; // // operator== @@ -176,86 +170,45 @@ namespace sprout { } // - // fixed_container_traits + // container_construct_traits // template - struct fixed_container_traits > - : public sprout::detail::fixed_container_traits_base > - { + struct container_construct_traits > { public: - typedef typename sprout::pit::fixed_container_type fixed_container_type; - typedef typename sprout::pit::internal_type internal_type; - typedef typename sprout::pit::clone_type clone_type; + typedef typename sprout::container_construct_traits::copied_type copied_type; public: - SPROUT_STATIC_CONSTEXPR typename sprout::detail::fixed_container_traits_base >::size_type fixed_size - = std::tuple_size::type>::value - ; - }; - - // - // rebind_fixed_size - // - template - struct rebind_fixed_size > { - public: - template >::size_type S> - struct apply { - public: - typedef sprout::pit< - typename sprout::rebind_fixed_size< - typename sprout::fixed_container_traits >::internal_type - >::template apply::type - > type; - }; - }; - - // - // clone_functor - // - template - struct clone_functor > { - private: - typedef typename sprout::fixed_container_traits >::clone_type clone_type; - public: - template - SPROUT_CONSTEXPR clone_type operator()(Other&& cont) const { - return clone_type(); + template + static SPROUT_CONSTEXPR copied_type deep_copy(Cont&& cont) { + return copied_type(); } - }; - - // - // make_clone_functor - // - template - struct make_clone_functor > { - private: - typedef typename sprout::fixed_container_traits >::clone_type clone_type; - typedef typename sprout::fixed_container_traits >::internal_type internal_type; - public: template - SPROUT_CONSTEXPR clone_type operator()(Args&&... args) const { - return sprout::make_clone(sprout::forward(args)...); + static SPROUT_CONSTEXPR copied_type make(Args&&... args) { + return sprout::make(sprout::forward(args)...); + } + template + static SPROUT_CONSTEXPR copied_type remake( + Cont&& cont, + typename sprout::container_traits >::difference_type size, + Args&&... args + ) + { + return sprout::remake(sprout::forward(cont), size, sprout::forward(args)...); } }; // - // remake_clone_functor + // container_transform_traits // template - struct remake_clone_functor > { - private: - typedef typename sprout::fixed_container_traits >::clone_type clone_type; - typedef typename sprout::fixed_container_traits >::internal_type internal_type; + struct container_transform_traits > { public: - template - SPROUT_CONSTEXPR clone_type operator()( - Other&& other, - typename sprout::fixed_container_traits >::difference_type size, - Args&&... args - ) const - { - return sprout::remake_clone(sprout::forward(other), size, sprout::forward(args)...); - } + template >::size_type Size> + struct rebind_size { + public: + typedef sprout::pit< + typename sprout::container_transform_traits::template rebind_size::type + > type; + }; }; } // namespace sprout @@ -264,21 +217,17 @@ namespace std { // tuple_size // template - struct tuple_size > { - public: - typedef std::integral_constant >::fixed_size> type; - SPROUT_STATIC_CONSTEXPR std::size_t value = type::value; - }; + struct tuple_size > + : public std::tuple_size + {}; // // tuple_element // template - struct tuple_element > { - public: - static_assert(I < sprout::fixed_container_traits >::fixed_size, "tuple_element<>: index out of range"); - typedef typename sprout::fixed_container_traits >::value_type type; - }; + struct tuple_element > + : public std::tuple_element + {}; } // namespace std #endif // #ifndef SPROUT_PIT_HPP diff --git a/sprout/range/algorithm/fit/copy.hpp b/sprout/range/algorithm/fit/copy.hpp index 1328ace8..efb4e9d7 100644 --- a/sprout/range/algorithm/fit/copy.hpp +++ b/sprout/range/algorithm/fit/copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIT_COPY_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fit/copy_backward.hpp b/sprout/range/algorithm/fit/copy_backward.hpp index 6e5bb24b..b890d405 100644 --- a/sprout/range/algorithm/fit/copy_backward.hpp +++ b/sprout/range/algorithm/fit/copy_backward.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIT_COPY_BACKWARD_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fit/copy_if.hpp b/sprout/range/algorithm/fit/copy_if.hpp index 0a401502..5e0258fe 100644 --- a/sprout/range/algorithm/fit/copy_if.hpp +++ b/sprout/range/algorithm/fit/copy_if.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIT_COPY_IF_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fit/merge.hpp b/sprout/range/algorithm/fit/merge.hpp index 7d5c0663..d9b96091 100644 --- a/sprout/range/algorithm/fit/merge.hpp +++ b/sprout/range/algorithm/fit/merge.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIT_MERGE_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fit/partition_copy.hpp b/sprout/range/algorithm/fit/partition_copy.hpp index 276aa1f0..17831914 100644 --- a/sprout/range/algorithm/fit/partition_copy.hpp +++ b/sprout/range/algorithm/fit/partition_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIT_PARTITION_COPY_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fit/remove_copy.hpp b/sprout/range/algorithm/fit/remove_copy.hpp index 6b983e91..0d4a5783 100644 --- a/sprout/range/algorithm/fit/remove_copy.hpp +++ b/sprout/range/algorithm/fit/remove_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIT_REMOVE_COPY_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fit/remove_copy_if.hpp b/sprout/range/algorithm/fit/remove_copy_if.hpp index ae3e9630..76b70dc7 100644 --- a/sprout/range/algorithm/fit/remove_copy_if.hpp +++ b/sprout/range/algorithm/fit/remove_copy_if.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIT_REMOVE_COPY_IF_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fit/replace_copy.hpp b/sprout/range/algorithm/fit/replace_copy.hpp index 8f024bd8..521c7ad8 100644 --- a/sprout/range/algorithm/fit/replace_copy.hpp +++ b/sprout/range/algorithm/fit/replace_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIT_REPLACE_COPY_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fit/replace_copy_if.hpp b/sprout/range/algorithm/fit/replace_copy_if.hpp index d7d0d3ee..1243a01a 100644 --- a/sprout/range/algorithm/fit/replace_copy_if.hpp +++ b/sprout/range/algorithm/fit/replace_copy_if.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIT_REPLACE_COPY_IF_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fit/reverse_copy.hpp b/sprout/range/algorithm/fit/reverse_copy.hpp index d2c78ec2..1e1bf9cb 100644 --- a/sprout/range/algorithm/fit/reverse_copy.hpp +++ b/sprout/range/algorithm/fit/reverse_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIT_REVERSE_COPY_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fit/rotate_copy.hpp b/sprout/range/algorithm/fit/rotate_copy.hpp index a7f4c6a0..3f0af6fb 100644 --- a/sprout/range/algorithm/fit/rotate_copy.hpp +++ b/sprout/range/algorithm/fit/rotate_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIT_ROTATE_COPY_HPP #include -#include -#include +#include +#include #include #include @@ -16,7 +16,7 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type rotate_copy( Input const& input, - typename sprout::fixed_container_traits::const_iterator middle, + typename sprout::container_traits::const_iterator middle, Result const& result ) { diff --git a/sprout/range/algorithm/fit/set_difference.hpp b/sprout/range/algorithm/fit/set_difference.hpp index 86a4673f..09cf84f7 100644 --- a/sprout/range/algorithm/fit/set_difference.hpp +++ b/sprout/range/algorithm/fit/set_difference.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIT_SET_DIFFERENCE_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fit/set_intersection.hpp b/sprout/range/algorithm/fit/set_intersection.hpp index d93236cc..dc128a81 100644 --- a/sprout/range/algorithm/fit/set_intersection.hpp +++ b/sprout/range/algorithm/fit/set_intersection.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIT_SET_INTERSECTION_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fit/set_symmetric_difference.hpp b/sprout/range/algorithm/fit/set_symmetric_difference.hpp index f3e8fc66..f2e9dddb 100644 --- a/sprout/range/algorithm/fit/set_symmetric_difference.hpp +++ b/sprout/range/algorithm/fit/set_symmetric_difference.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIT_SET_SYMMETRIC_DIFFERENCE_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fit/set_union.hpp b/sprout/range/algorithm/fit/set_union.hpp index 76540cd5..b5490b64 100644 --- a/sprout/range/algorithm/fit/set_union.hpp +++ b/sprout/range/algorithm/fit/set_union.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIT_SET_UNION_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fit/stable_partition_copy.hpp b/sprout/range/algorithm/fit/stable_partition_copy.hpp index fd7c0f6f..f91b3154 100644 --- a/sprout/range/algorithm/fit/stable_partition_copy.hpp +++ b/sprout/range/algorithm/fit/stable_partition_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIT_STABLE_PARTITION_COPY_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fit/swap_element_copy.hpp b/sprout/range/algorithm/fit/swap_element_copy.hpp index 478cb1bd..24e9ce9a 100644 --- a/sprout/range/algorithm/fit/swap_element_copy.hpp +++ b/sprout/range/algorithm/fit/swap_element_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIT_SWAP_ELEMENT_COPY_HPP #include -#include -#include +#include +#include #include #include @@ -17,8 +17,8 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fit::result_of::algorithm::type swap_element_copy( Input const& input, Result const& result, - typename sprout::fixed_container_traits::const_iterator pos1, - typename sprout::fixed_container_traits::const_iterator pos2 + typename sprout::container_traits::const_iterator pos1, + typename sprout::container_traits::const_iterator pos2 ) { return sprout::fit::swap_element_copy(sprout::begin(input), sprout::end(input), result, pos1, pos2); diff --git a/sprout/range/algorithm/fit/transform.hpp b/sprout/range/algorithm/fit/transform.hpp index cb8e980c..a5106004 100644 --- a/sprout/range/algorithm/fit/transform.hpp +++ b/sprout/range/algorithm/fit/transform.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIT_TRANSFORM_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fit/unique_copy.hpp b/sprout/range/algorithm/fit/unique_copy.hpp index a76784b3..4a849649 100644 --- a/sprout/range/algorithm/fit/unique_copy.hpp +++ b/sprout/range/algorithm/fit/unique_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIT_UNIQUE_COPY_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fixed/copy.hpp b/sprout/range/algorithm/fixed/copy.hpp index 005e54dc..32192ab6 100644 --- a/sprout/range/algorithm/fixed/copy.hpp +++ b/sprout/range/algorithm/fixed/copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIXED_COPY_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fixed/copy_backward.hpp b/sprout/range/algorithm/fixed/copy_backward.hpp index 86bfa07e..b719b11e 100644 --- a/sprout/range/algorithm/fixed/copy_backward.hpp +++ b/sprout/range/algorithm/fixed/copy_backward.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIXED_COPY_BACKWARD_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fixed/copy_if.hpp b/sprout/range/algorithm/fixed/copy_if.hpp index a0a9ece9..f2c44ec1 100644 --- a/sprout/range/algorithm/fixed/copy_if.hpp +++ b/sprout/range/algorithm/fixed/copy_if.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIXED_COPY_IF_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fixed/merge.hpp b/sprout/range/algorithm/fixed/merge.hpp index 517d57ce..5615d468 100644 --- a/sprout/range/algorithm/fixed/merge.hpp +++ b/sprout/range/algorithm/fixed/merge.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIXED_MERGE_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fixed/partition_copy.hpp b/sprout/range/algorithm/fixed/partition_copy.hpp index 9a739113..63cac2e6 100644 --- a/sprout/range/algorithm/fixed/partition_copy.hpp +++ b/sprout/range/algorithm/fixed/partition_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIXED_PARTITION_COPY_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fixed/remove_copy.hpp b/sprout/range/algorithm/fixed/remove_copy.hpp index e46a3b38..1f0ada4a 100644 --- a/sprout/range/algorithm/fixed/remove_copy.hpp +++ b/sprout/range/algorithm/fixed/remove_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIXED_REMOVE_COPY_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fixed/remove_copy_if.hpp b/sprout/range/algorithm/fixed/remove_copy_if.hpp index e90cbb7c..efc5fef0 100644 --- a/sprout/range/algorithm/fixed/remove_copy_if.hpp +++ b/sprout/range/algorithm/fixed/remove_copy_if.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIXED_REMOVE_COPY_IF_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fixed/replace_copy.hpp b/sprout/range/algorithm/fixed/replace_copy.hpp index d89584b0..28f99c2c 100644 --- a/sprout/range/algorithm/fixed/replace_copy.hpp +++ b/sprout/range/algorithm/fixed/replace_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIXED_REPLACE_COPY_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fixed/replace_copy_if.hpp b/sprout/range/algorithm/fixed/replace_copy_if.hpp index 8042561f..739f1820 100644 --- a/sprout/range/algorithm/fixed/replace_copy_if.hpp +++ b/sprout/range/algorithm/fixed/replace_copy_if.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIXED_REPLACE_COPY_IF_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fixed/reverse_copy.hpp b/sprout/range/algorithm/fixed/reverse_copy.hpp index 7a712c6a..f7f0b439 100644 --- a/sprout/range/algorithm/fixed/reverse_copy.hpp +++ b/sprout/range/algorithm/fixed/reverse_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIXED_REVERSE_COPY_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fixed/rotate_copy.hpp b/sprout/range/algorithm/fixed/rotate_copy.hpp index 97114067..10cad8b3 100644 --- a/sprout/range/algorithm/fixed/rotate_copy.hpp +++ b/sprout/range/algorithm/fixed/rotate_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIXED_ROTATE_COPY_HPP #include -#include -#include +#include +#include #include #include @@ -16,7 +16,7 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type rotate_copy( Input const& input, - typename sprout::fixed_container_traits::const_iterator middle, + typename sprout::container_traits::const_iterator middle, Result const& result ) { diff --git a/sprout/range/algorithm/fixed/set_difference.hpp b/sprout/range/algorithm/fixed/set_difference.hpp index 99ecad48..87990429 100644 --- a/sprout/range/algorithm/fixed/set_difference.hpp +++ b/sprout/range/algorithm/fixed/set_difference.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIXED_SET_DIFFERENCE_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fixed/set_intersection.hpp b/sprout/range/algorithm/fixed/set_intersection.hpp index ebb13940..612e0d34 100644 --- a/sprout/range/algorithm/fixed/set_intersection.hpp +++ b/sprout/range/algorithm/fixed/set_intersection.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIXED_SET_INTERSECTION_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fixed/set_symmetric_difference.hpp b/sprout/range/algorithm/fixed/set_symmetric_difference.hpp index be9f02d6..7cb77e1a 100644 --- a/sprout/range/algorithm/fixed/set_symmetric_difference.hpp +++ b/sprout/range/algorithm/fixed/set_symmetric_difference.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIXED_SET_SYMMETRIC_DIFFERENCE_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fixed/set_union.hpp b/sprout/range/algorithm/fixed/set_union.hpp index b80b1145..9c6fdf86 100644 --- a/sprout/range/algorithm/fixed/set_union.hpp +++ b/sprout/range/algorithm/fixed/set_union.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIXED_SET_UNION_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fixed/stable_partition_copy.hpp b/sprout/range/algorithm/fixed/stable_partition_copy.hpp index 79292756..ae7282b2 100644 --- a/sprout/range/algorithm/fixed/stable_partition_copy.hpp +++ b/sprout/range/algorithm/fixed/stable_partition_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIXED_STABLE_PARTITION_COPY_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fixed/swap_element_copy.hpp b/sprout/range/algorithm/fixed/swap_element_copy.hpp index 55d88558..272c367d 100644 --- a/sprout/range/algorithm/fixed/swap_element_copy.hpp +++ b/sprout/range/algorithm/fixed/swap_element_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIXED_SWAP_ELEMENT_COPY_HPP #include -#include -#include +#include +#include #include #include @@ -17,8 +17,8 @@ namespace sprout { SPROUT_CONSTEXPR inline typename sprout::fixed::result_of::algorithm::type swap_element_copy( Input const& input, Result const& result, - typename sprout::fixed_container_traits::const_iterator pos1, - typename sprout::fixed_container_traits::const_iterator pos2 + typename sprout::container_traits::const_iterator pos1, + typename sprout::container_traits::const_iterator pos2 ) { return sprout::fixed::swap_element_copy(sprout::begin(input), sprout::end(input), result, pos1, pos2); diff --git a/sprout/range/algorithm/fixed/transform.hpp b/sprout/range/algorithm/fixed/transform.hpp index 53b76885..545470a4 100644 --- a/sprout/range/algorithm/fixed/transform.hpp +++ b/sprout/range/algorithm/fixed/transform.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIXED_TRANSFORM_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/algorithm/fixed/unique_copy.hpp b/sprout/range/algorithm/fixed/unique_copy.hpp index 51f6accd..cb381b67 100644 --- a/sprout/range/algorithm/fixed/unique_copy.hpp +++ b/sprout/range/algorithm/fixed/unique_copy.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_ALGORITHM_FIXED_UNIQUE_COPY_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/numeric/fit/adjacent_difference.hpp b/sprout/range/numeric/fit/adjacent_difference.hpp index d18edb7f..67fefe40 100644 --- a/sprout/range/numeric/fit/adjacent_difference.hpp +++ b/sprout/range/numeric/fit/adjacent_difference.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_NUMERIC_FIT_ADJACENT_DIFFERENCE_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/numeric/fit/partial_sum.hpp b/sprout/range/numeric/fit/partial_sum.hpp index de439e15..05d8e42a 100644 --- a/sprout/range/numeric/fit/partial_sum.hpp +++ b/sprout/range/numeric/fit/partial_sum.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_NUMERIC_FIT_PARTIAL_SUM_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/numeric/fixed/adjacent_difference.hpp b/sprout/range/numeric/fixed/adjacent_difference.hpp index e3345541..008ef4d9 100644 --- a/sprout/range/numeric/fixed/adjacent_difference.hpp +++ b/sprout/range/numeric/fixed/adjacent_difference.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_NUMERIC_FIXED_ADJACENT_DIFFERENCE_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/range/numeric/fixed/partial_sum.hpp b/sprout/range/numeric/fixed/partial_sum.hpp index 429b0f83..2a9c144c 100644 --- a/sprout/range/numeric/fixed/partial_sum.hpp +++ b/sprout/range/numeric/fixed/partial_sum.hpp @@ -2,8 +2,8 @@ #define SPROUT_RANGE_NUMERIC_FIXED_PARTIAL_SUM_HPP #include -#include -#include +#include +#include #include #include diff --git a/sprout/string.hpp b/sprout/string.hpp index 50759617..caeafb67 100644 --- a/sprout/string.hpp +++ b/sprout/string.hpp @@ -11,7 +11,7 @@ #include #include #include -#include +#include #include #include #include @@ -199,7 +199,6 @@ namespace sprout { public: SPROUT_STATIC_CONSTEXPR size_type npos = -1; SPROUT_STATIC_CONSTEXPR size_type static_size = N; - SPROUT_STATIC_CONSTEXPR size_type fixed_size = static_size; private: static SPROUT_CONSTEXPR int compare_impl_2(int compared, size_type n1, size_type n2) { return compared != 0 ? compared @@ -588,8 +587,6 @@ namespace sprout { SPROUT_CONSTEXPR typename sprout::basic_string::size_type sprout::basic_string::npos; template SPROUT_CONSTEXPR typename sprout::basic_string::size_type sprout::basic_string::static_size; - template - SPROUT_CONSTEXPR typename sprout::basic_string::size_type sprout::basic_string::fixed_size; // // operator== @@ -738,95 +735,88 @@ namespace sprout { return lhs << rhs.c_str(); } - // - // rebind_fixed_size - // - template - struct rebind_fixed_size > { - public: - template >::size_type S> - struct apply { - public: - typedef sprout::basic_string type; - }; - }; - namespace detail { template - struct make_clone_functor_impl; + struct make_construct_impl; template - struct make_clone_functor_impl > { + struct make_construct_impl > { private: - typedef sprout::basic_string container_type; - typedef typename sprout::fixed_container_traits::clone_type clone_type; + typedef sprout::basic_string copied_type; private: template - static SPROUT_CONSTEXPR clone_type make_impl(typename clone_type::size_type size) { - return clone_type{{}, size}; + static SPROUT_CONSTEXPR copied_type make_impl(typename copied_type::size_type size) { + return copied_type{{}, size}; } template static SPROUT_CONSTEXPR typename std::enable_if< S == sizeof...(Tail), - clone_type - >::type make_impl(typename clone_type::size_type size, Head&& head, Tail&&... tail) { - return clone_type{{sprout::forward(tail)..., sprout::forward(head)}, size}; + copied_type + >::type make_impl(typename copied_type::size_type size, Head&& head, Tail&&... tail) { + return copied_type{{sprout::forward(tail)..., sprout::forward(head)}, size}; } template static SPROUT_CONSTEXPR typename std::enable_if< S != sizeof...(Tail), - clone_type - >::type make_impl(typename clone_type::size_type size, Head&& head, Tail&&... tail) { + copied_type + >::type make_impl(typename copied_type::size_type size, Head&& head, Tail&&... tail) { return make_impl(size, sprout::forward(tail)..., S >= size ? T() : sprout::forward(head)); } public: - static SPROUT_CONSTEXPR typename clone_type::size_type length() { + static SPROUT_CONSTEXPR typename copied_type::size_type length() { return 0; } template - static SPROUT_CONSTEXPR typename clone_type::size_type length(T const& head, Tail&&... tail) { + static SPROUT_CONSTEXPR typename copied_type::size_type length(T const& head, Tail&&... tail) { return !head ? 0 : 1 + length(sprout::forward(tail)...); } template - static SPROUT_CONSTEXPR clone_type make(typename clone_type::size_type size, Args&&... args) { + static SPROUT_CONSTEXPR copied_type make(typename copied_type::size_type size, Args&&... args) { return make_impl<0>(size, sprout::forward(args)...); } }; } // namespace detail // - // make_clone_functor + // container_construct_traits // template - struct make_clone_functor > { - private: - typedef sprout::basic_string container_type; - typedef sprout::detail::make_clone_functor_impl impl_type; + struct container_construct_traits > { public: + typedef sprout::basic_string copied_type; + public: + template + static SPROUT_CONSTEXPR copied_type deep_copy(Cont&& cont) { + return sprout::forward(cont); + } template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits::clone_type operator()(Args&&... args) const { + static SPROUT_CONSTEXPR copied_type make(Args&&... args) { + typedef sprout::detail::make_construct_impl impl_type; return impl_type::make(impl_type::length(sprout::forward(args)...), sprout::forward(args)...); } + template + static SPROUT_CONSTEXPR copied_type remake( + Cont&& cont, + typename sprout::container_traits >::difference_type size, + Args&&... args + ) + { + typedef sprout::detail::make_construct_impl impl_type; + return impl_type::make(size, sprout::forward(args)...); + } }; // - // remake_clone_functor + // container_transform_traits // template - struct remake_clone_functor > { - private: - typedef sprout::basic_string container_type; - typedef sprout::detail::make_clone_functor_impl impl_type; + struct container_transform_traits > { public: - template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits::clone_type operator()( - Other&& other, - typename sprout::fixed_container_traits::difference_type size, - Args&&... args - ) const - { - return impl_type::make(size, sprout::forward(args)...); - } + template >::size_type Size> + struct rebind_size { + public: + typedef sprout::basic_string type; + }; }; // @@ -1101,11 +1091,9 @@ namespace std { // tuple_size // template - struct tuple_size > { - public: - typedef std::integral_constant type; - SPROUT_STATIC_CONSTEXPR std::size_t value = type::value; - }; + struct tuple_size > + : public std::integral_constant + {}; // // tuple_element diff --git a/sprout/sub_array.hpp b/sprout/sub_array.hpp index 4ce986a2..000db3d0 100644 --- a/sprout/sub_array.hpp +++ b/sprout/sub_array.hpp @@ -7,8 +7,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include HDR_ALGORITHM_SSCRISK_CEL_OR_SPROUT_DETAIL @@ -23,48 +23,46 @@ namespace sprout { class sub_array_impl { protected: typedef Container container_type; - typedef typename std::remove_reference::type fixed_container_type; - typedef typename std::remove_const::type internal_type; + typedef typename std::remove_reference::type internal_type; protected: SPROUT_STATIC_CONSTEXPR bool is_reference = std::is_reference::value; - SPROUT_STATIC_CONSTEXPR bool is_const = std::is_const::value; + SPROUT_STATIC_CONSTEXPR bool is_const = std::is_const::value; protected: - typedef typename sprout::fixed_container_traits::value_type value_type; + typedef typename sprout::container_traits::value_type value_type; typedef typename std::conditional< is_const, - typename sprout::fixed_container_traits::const_iterator, - typename sprout::fixed_container_traits::iterator + typename sprout::container_traits::const_iterator, + typename sprout::container_traits::iterator >::type iterator; - typedef typename sprout::fixed_container_traits::const_iterator const_iterator; + typedef typename sprout::container_traits::const_iterator const_iterator; typedef typename std::conditional< is_const, - typename sprout::fixed_container_traits::const_reference, - typename sprout::fixed_container_traits::reference + typename sprout::container_traits::const_reference, + typename sprout::container_traits::reference >::type reference; - typedef typename sprout::fixed_container_traits::const_reference const_reference; - typedef typename sprout::fixed_container_traits::size_type size_type; - typedef typename sprout::fixed_container_traits::difference_type difference_type; + typedef typename sprout::container_traits::const_reference const_reference; + typedef typename sprout::container_traits::size_type size_type; + typedef typename sprout::container_traits::difference_type difference_type; typedef typename std::conditional< is_const, - typename sprout::fixed_container_traits::const_pointer, - typename sprout::fixed_container_traits::pointer + typename sprout::container_traits::const_pointer, + typename sprout::container_traits::pointer >::type pointer; - typedef typename sprout::fixed_container_traits::const_pointer const_pointer; + typedef typename sprout::container_traits::const_pointer const_pointer; protected: - SPROUT_STATIC_CONSTEXPR size_type static_size = sprout::fixed_container_traits::fixed_size; - SPROUT_STATIC_CONSTEXPR size_type fixed_size = static_size; + SPROUT_STATIC_CONSTEXPR size_type static_size = sprout::container_traits::static_size; protected: typedef typename std::conditional< is_reference, - fixed_container_type*, - typename std::remove_const::type + internal_type*, + typename std::remove_const::type >::type holder_type; typedef typename std::conditional< is_reference, - fixed_container_type&, - fixed_container_type const& + internal_type&, + internal_type const& >::type param_type; - typedef fixed_container_type const& const_param_type; + typedef internal_type const& const_param_type; protected: typedef typename std::conditional< std::is_array::value, @@ -194,9 +192,7 @@ namespace sprout { typedef sprout::detail::sub_array_impl impl_type; public: typedef typename impl_type::container_type container_type; - typedef typename impl_type::fixed_container_type fixed_container_type; typedef typename impl_type::internal_type internal_type; - typedef sub_array::clone_type> clone_type; public: SPROUT_STATIC_CONSTEXPR bool is_reference = impl_type::is_reference; SPROUT_STATIC_CONSTEXPR bool is_const = impl_type::is_const; @@ -212,7 +208,6 @@ namespace sprout { typedef typename impl_type::const_pointer const_pointer; public: SPROUT_STATIC_CONSTEXPR size_type static_size = impl_type::static_size; - SPROUT_STATIC_CONSTEXPR size_type fixed_size = impl_type::fixed_size; public: typedef typename impl_type::holder_type holder_type; typedef typename impl_type::param_type param_type; @@ -230,7 +225,7 @@ namespace sprout { : impl_type( array_tag(), arr, - typename sprout::index_range<0, fixed_size>::type(), + typename sprout::index_range<0, static_size>::type(), first, last ) @@ -239,7 +234,7 @@ namespace sprout { : impl_type( array_tag(), arr, - typename sprout::index_range<0, fixed_size>::type(), + typename sprout::index_range<0, static_size>::type(), first, last ) @@ -248,7 +243,7 @@ namespace sprout { : impl_type( array_tag(), impl_type::template to_param(other.array_), - typename sprout::index_range<0, fixed_size>::type(), + typename sprout::index_range<0, static_size>::type(), NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(other.get_array()), first), NS_SSCRISK_CEL_OR_SPROUT_DETAIL::distance(sprout::begin(other.get_array()), last) ) @@ -257,7 +252,7 @@ namespace sprout { : impl_type( array_tag(), impl_type::template to_param(other.array_), - typename sprout::index_range<0, fixed_size>::type(), + typename sprout::index_range<0, static_size>::type(), first + other.first_, last + other.first_ ) @@ -367,13 +362,10 @@ namespace sprout { } } - param_type get_fixed() { + param_type get_internal() { return impl_type::template to_param(array_); } - SPROUT_CONSTEXPR const_param_type get_fixed() const { - return impl_type::template to_const_param(array_); - } - SPROUT_CONSTEXPR const_param_type get_cfixed() const { + SPROUT_CONSTEXPR const_param_type get_internal() const { return impl_type::template to_const_param(array_); } param_type get_array() { @@ -385,8 +377,6 @@ namespace sprout { }; template SPROUT_CONSTEXPR typename sprout::sub_array::size_type sprout::sub_array::static_size; - template - SPROUT_CONSTEXPR typename sprout::sub_array::size_type sprout::sub_array::fixed_size; // // operator== @@ -430,141 +420,103 @@ namespace sprout { } // - // fixed_container_traits + // container_construct_traits // template - struct fixed_container_traits > - : public sprout::detail::fixed_container_traits_base > - { - public: - typedef typename sprout::sub_array::fixed_container_type fixed_container_type; + struct container_construct_traits > { + private: typedef typename sprout::sub_array::internal_type internal_type; - typedef typename sprout::sub_array::clone_type clone_type; + typedef typename sprout::container_construct_traits::copied_type internal_copied_type; public: - SPROUT_STATIC_CONSTEXPR typename sprout::detail::fixed_container_traits_base >::size_type fixed_size - = std::tuple_size::type>::value - ; + typedef sprout::sub_array copied_type; + private: + static SPROUT_CONSTEXPR copied_type make_impl(internal_copied_type const& internal_copied) { + return copied_type(internal_copied, sprout::begin(internal_copied), sprout::end(internal_copied)); + } + template + static SPROUT_CONSTEXPR copied_type remake_impl( + Cont&& cont, + typename sprout::container_traits >::difference_type size, + internal_copied_type const& internal_copied + ) + { + return copied_type( + internal_copied, + sprout::next(sprout::begin(internal_copied), sprout::internal_begin_offset(cont)), + sprout::next(sprout::begin(internal_copied), sprout::internal_begin_offset(cont) + size) + ); + } + public: + template + static SPROUT_CONSTEXPR copied_type deep_copy(Cont&& cont) { + return copied_type( + sprout::deep_copy(sprout::get_internal(cont)), + sprout::internal_begin_offset(cont), + sprout::internal_end_offset(cont) + ); + } + template + static SPROUT_CONSTEXPR copied_type make(Args&&... args) { + return make_impl( + sprout::make(sprout::forward(args)...) + ); + } + template + static SPROUT_CONSTEXPR copied_type remake( + Cont&& cont, + typename sprout::container_traits >::difference_type size, + Args&&... args + ) + { + return remake_impl( + sprout::forward(cont), + size, + sprout::make(sprout::forward(args)...) + ); + } }; // - // rebind_fixed_size + // container_transform_traits // template - struct rebind_fixed_size > { + struct container_transform_traits > { public: - template >::size_type S> - struct apply { - public: - typedef sprout::sub_array< - typename sprout::rebind_fixed_size< - typename sprout::fixed_container_traits >::internal_type - >::template apply::type - > type; + template >::size_type Size> + struct rebind_size { + public: + typedef sprout::sub_array< + typename sprout::container_transform_traits< + typename std::remove_reference::type + >::template rebind_size::type + > type; }; }; // - // get_fixed_functor + // sub_container_traits // template - struct get_fixed_functor > { + struct sub_container_traits > { private: - typedef typename sprout::fixed_container_traits >::fixed_container_type fixed_container_type; - public: - fixed_container_type& operator()(sprout::sub_array& cont) const { - return cont.get_fixed(); + static typename sprout::sub_array::param_type + call(sprout::sub_array& cont) { + return cont.get_internal(); } - SPROUT_CONSTEXPR fixed_container_type const& operator()(sprout::sub_array const& cont) const { - return cont.get_fixed(); - } - }; - - // - // clone_functor - // - template - struct clone_functor > { - private: - typedef typename sprout::fixed_container_traits >::clone_type clone_type; - private: - template - SPROUT_CONSTEXPR clone_type make( - Other&& cont, - typename sprout::fixed_container_traits >::difference_type first, - typename sprout::fixed_container_traits >::difference_type last - ) const - { - return clone_type( - sprout::clone(sprout::get_fixed(sprout::forward(cont))), - first, - last - ); + static SPROUT_CONSTEXPR typename sprout::sub_array::const_param_type + call(sprout::sub_array const& cont) { + return cont.get_internal(); } public: - template - SPROUT_CONSTEXPR clone_type operator()(Other&& cont) const { - return make( - sprout::forward(cont), - sprout::fixed_begin_offset(cont), - sprout::fixed_end_offset(cont) - ); - } - }; - - // - // make_clone_functor - // - template - struct make_clone_functor > { - private: - typedef typename sprout::fixed_container_traits >::clone_type clone_type; - typedef typename sprout::fixed_container_traits >::internal_type internal_type; - private: - SPROUT_CONSTEXPR clone_type make(typename sprout::fixed_container_traits::clone_type const& arr) const { - return clone_type(arr, sprout::begin(arr), sprout::end(arr)); - } + template + struct internal { + public: + typedef decltype(call(std::declval())) type; + }; public: - template - SPROUT_CONSTEXPR clone_type operator()(Args&&... args) const { - return make(sprout::make_clone(sprout::forward(args)...)); - } - }; - - // - // remake_clone_functor - // - template - struct remake_clone_functor > { - private: - typedef typename sprout::fixed_container_traits >::clone_type clone_type; - typedef typename sprout::fixed_container_traits >::internal_type internal_type; - private: - template - SPROUT_CONSTEXPR clone_type remake( - Other&& other, - typename sprout::fixed_container_traits >::difference_type size, - typename sprout::fixed_container_traits::clone_type const& cloned - ) const - { - return clone_type( - cloned, - sprout::next(sprout::begin(cloned), sprout::fixed_begin_offset(other)), - sprout::next(sprout::begin(cloned), sprout::fixed_begin_offset(other) + size) - ); - } - public: - template - SPROUT_CONSTEXPR clone_type operator()( - Other&& other, - typename sprout::fixed_container_traits >::difference_type size, - Args&&... args - ) const - { - return remake( - sprout::forward(other), - size, - sprout::make_clone(sprout::forward(args)...) - ); + template + static SPROUT_CONSTEXPR typename internal::type get_internal(Cont&& cont) { + return call(sprout::forward(cont)); } }; @@ -600,8 +552,8 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type sub( Container& arr, - typename sprout::fixed_container_traits >::const_iterator first, - typename sprout::fixed_container_traits >::const_iterator last + typename sprout::container_traits >::const_iterator first, + typename sprout::container_traits >::const_iterator last ) { return sprout::sub_array(arr, first, last); @@ -609,8 +561,8 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type sub( Container& arr, - typename sprout::fixed_container_traits >::difference_type first, - typename sprout::fixed_container_traits >::difference_type last + typename sprout::container_traits >::difference_type first, + typename sprout::container_traits >::difference_type last ) { return sprout::sub_array(arr, first, last); @@ -618,7 +570,7 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type sub( Container& arr, - typename sprout::fixed_container_traits >::const_iterator first + typename sprout::container_traits >::const_iterator first ) { return sprout::sub(arr, first, sprout::end(arr)); @@ -626,7 +578,7 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type sub( Container& arr, - typename sprout::fixed_container_traits >::difference_type first + typename sprout::container_traits >::difference_type first ) { return sprout::sub(arr, first, sprout::size(arr)); @@ -644,8 +596,8 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type sub( Container const& arr, - typename sprout::fixed_container_traits >::const_iterator first, - typename sprout::fixed_container_traits >::const_iterator last + typename sprout::container_traits >::const_iterator first, + typename sprout::container_traits >::const_iterator last ) { return sprout::sub_array(arr, first, last); @@ -653,8 +605,8 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type sub( Container const& arr, - typename sprout::fixed_container_traits >::difference_type first, - typename sprout::fixed_container_traits >::difference_type last + typename sprout::container_traits >::difference_type first, + typename sprout::container_traits >::difference_type last ) { return sprout::sub_array(arr, first, last); @@ -662,7 +614,7 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type sub( Container const& arr, - typename sprout::fixed_container_traits >::const_iterator first + typename sprout::container_traits >::const_iterator first ) { return sprout::sub(arr, first, sprout::end(arr)); @@ -670,7 +622,7 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type sub( Container const& arr, - typename sprout::fixed_container_traits >::difference_type first + typename sprout::container_traits >::difference_type first ) { return sprout::sub(arr, first, sprout::size(arr)); @@ -688,8 +640,8 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if::value, Container>::type sub( Container const& arr, - typename sprout::fixed_container_traits::const_iterator first, - typename sprout::fixed_container_traits::const_iterator last + typename sprout::container_traits::const_iterator first, + typename sprout::container_traits::const_iterator last ) { return Container(arr, first, last); @@ -697,8 +649,8 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if::value, Container>::type sub( Container const& arr, - typename sprout::fixed_container_traits::difference_type first, - typename sprout::fixed_container_traits::difference_type last + typename sprout::container_traits::difference_type first, + typename sprout::container_traits::difference_type last ) { return Container(arr, first, last); @@ -706,7 +658,7 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if::value, Container>::type sub( Container const& arr, - typename sprout::fixed_container_traits::const_iterator first + typename sprout::container_traits::const_iterator first ) { return sprout::sub(arr, first, sprout::end(arr)); @@ -714,7 +666,7 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if::value, Container>::type sub( Container const& arr, - typename sprout::fixed_container_traits::difference_type first + typename sprout::container_traits::difference_type first ) { return sprout::sub(arr, first, sprout::size(arr)); @@ -733,8 +685,8 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type csub( Container const& arr, - typename sprout::fixed_container_traits >::const_iterator first, - typename sprout::fixed_container_traits >::const_iterator last + typename sprout::container_traits >::const_iterator first, + typename sprout::container_traits >::const_iterator last ) { return sprout::sub_array(arr, first, last); @@ -742,8 +694,8 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type csub( Container const& arr, - typename sprout::fixed_container_traits >::difference_type first, - typename sprout::fixed_container_traits >::difference_type last + typename sprout::container_traits >::difference_type first, + typename sprout::container_traits >::difference_type last ) { return sprout::sub_array(arr, first, last); @@ -751,7 +703,7 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type csub( Container const& arr, - typename sprout::fixed_container_traits >::const_iterator first + typename sprout::container_traits >::const_iterator first ) { return sprout::csub(arr, first, sprout::end(arr)); @@ -759,7 +711,7 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type csub( Container const& arr, - typename sprout::fixed_container_traits >::difference_type first + typename sprout::container_traits >::difference_type first ) { return sprout::csub(arr, first, sprout::size(arr)); @@ -775,45 +727,45 @@ namespace sprout { // csub // template - SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type csub( + SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type csub( Container const& arr, - typename sprout::fixed_container_traits::const_iterator first, - typename sprout::fixed_container_traits::const_iterator last + typename sprout::container_traits::const_iterator first, + typename sprout::container_traits::const_iterator last ) { - return sprout::sub_array(arr.get_array(), first, last); + return sprout::sub_array(arr.get_array(), first, last); } template - SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type csub( + SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type csub( Container const& arr, - typename sprout::fixed_container_traits::difference_type first, - typename sprout::fixed_container_traits::difference_type last + typename sprout::container_traits::difference_type first, + typename sprout::container_traits::difference_type last ) { - return sprout::sub_array( + return sprout::sub_array( arr.get_array(), sprout::next(sprout::begin(arr), first), sprout::next(sprout::begin(arr), last) ); } template - SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type csub( + SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type csub( Container const& arr, - typename sprout::fixed_container_traits::const_iterator first + typename sprout::container_traits::const_iterator first ) { return sprout::csub(arr, first, sprout::end(arr)); } template - SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type csub( + SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type csub( Container const& arr, - typename sprout::fixed_container_traits::difference_type first + typename sprout::container_traits::difference_type first ) { return sprout::csub(arr, first, sprout::size(arr)); } template - SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type csub( + SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type csub( Container const& arr ) { @@ -826,8 +778,8 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type sub_copy( Container const& arr, - typename sprout::fixed_container_traits::const_iterator first, - typename sprout::fixed_container_traits::const_iterator last + typename sprout::container_traits::const_iterator first, + typename sprout::container_traits::const_iterator last ) { return sprout::sub_array(arr, first, last); @@ -835,8 +787,8 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type sub_copy( Container const& arr, - typename sprout::fixed_container_traits::difference_type first, - typename sprout::fixed_container_traits::difference_type last + typename sprout::container_traits::difference_type first, + typename sprout::container_traits::difference_type last ) { return sprout::sub_array(arr, first, last); @@ -844,7 +796,7 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type sub_copy( Container const& arr, - typename sprout::fixed_container_traits::const_iterator first + typename sprout::container_traits::const_iterator first ) { return sprout::sub_copy(arr, first, sprout::end(arr)); @@ -852,7 +804,7 @@ namespace sprout { template SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type sub_copy( Container const& arr, - typename sprout::fixed_container_traits::difference_type first + typename sprout::container_traits::difference_type first ) { return sprout::sub_copy(arr, first, sprout::size(arr)); @@ -868,45 +820,45 @@ namespace sprout { // sub_copy // template - SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type sub_copy( + SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type sub_copy( Container const& arr, - typename sprout::fixed_container_traits::const_iterator first, - typename sprout::fixed_container_traits::const_iterator last + typename sprout::container_traits::const_iterator first, + typename sprout::container_traits::const_iterator last ) { - return sprout::sub_array(arr.get_array(), first, last); + return sprout::sub_array(arr.get_array(), first, last); } template - SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type sub_copy( + SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type sub_copy( Container const& arr, - typename sprout::fixed_container_traits::difference_type first, - typename sprout::fixed_container_traits::difference_type last + typename sprout::container_traits::difference_type first, + typename sprout::container_traits::difference_type last ) { - return sprout::sub_array( + return sprout::sub_array( arr.get_array(), sprout::next(sprout::begin(arr), first), sprout::next(sprout::begin(arr), last) ); } template - SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type sub_copy( + SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type sub_copy( Container const& arr, - typename sprout::fixed_container_traits::const_iterator first + typename sprout::container_traits::const_iterator first ) { return sprout::sub_copy(arr, first, sprout::end(arr)); } template - SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type sub_copy( + SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type sub_copy( Container const& arr, - typename sprout::fixed_container_traits::difference_type first + typename sprout::container_traits::difference_type first ) { return sprout::sub_copy(arr, first, sprout::size(arr)); } template - SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type sub_copy( + SPROUT_CONSTEXPR inline typename std::enable_if::value, sprout::sub_array >::type sub_copy( Container const& arr ) { @@ -919,28 +871,17 @@ namespace std { // tuple_size // template - struct tuple_size > { - public: - SPROUT_STATIC_CONSTEXPR std::size_t value = std::tuple_size< - typename std::remove_const< - typename std::remove_reference::type - >::type - >::value; - }; + struct tuple_size > + : public std::tuple_size::type> + {}; // // tuple_element // template - struct tuple_element > { - public: - typedef typename std::tuple_element< - I, - typename std::remove_const< - typename std::remove_reference::type - >::type - >::type type; - }; + struct tuple_element > + : public std::tuple_element::type> + {}; } // namespace std #endif // #ifndef SPROUT_SUB_ARRAY_HPP diff --git a/sprout/tuple/algorithm/copy.hpp b/sprout/tuple/algorithm/copy.hpp index 5144ac57..f95ddc93 100644 --- a/sprout/tuple/algorithm/copy.hpp +++ b/sprout/tuple/algorithm/copy.hpp @@ -16,7 +16,7 @@ namespace sprout { template struct copy { public: - typedef typename sprout::tuples::tuple_traits::clone_type type; + typedef typename sprout::tuples::tuple_construct_traits::copied_type type; }; } // namespace result_of @@ -29,7 +29,7 @@ namespace sprout { sprout::index_tuple ) { - return sprout::tuples::remake_clone( + return sprout::tuples::remake( t, sprout::tuples::get(input)..., sprout::tuples::get(t)... diff --git a/sprout/tuple/clone.hpp b/sprout/tuple/clone.hpp deleted file mode 100644 index eb099559..00000000 --- a/sprout/tuple/clone.hpp +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef SPROUT_TUPLE_CLONE_HPP -#define SPROUT_TUPLE_CLONE_HPP - -#include -#include -#include -#include - -namespace sprout { - namespace tuples { - // - // clone - // - template - SPROUT_CONSTEXPR inline typename sprout::tuples::tuple_traits< - typename std::remove_reference::type - >::clone_type clone(Tuple&& cont) { - typedef typename std::decay::type tuple_type; - return sprout::tuples::clone_functor().template operator()(sprout::forward(cont)); - } - } // namespace tuples -} // namespace sprout - -#endif // #ifndef SPROUT_TUPLE_CLONE_HPP diff --git a/sprout/tuple/deep_copy.hpp b/sprout/tuple/deep_copy.hpp new file mode 100644 index 00000000..a7b893de --- /dev/null +++ b/sprout/tuple/deep_copy.hpp @@ -0,0 +1,24 @@ +#ifndef SPROUT_TUPLE_DEEP_COPY_HPP +#define SPROUT_TUPLE_DEEP_COPY_HPP + +#include +#include +#include +#include + +namespace sprout { + namespace tuples { + // + // deep_copy + // + template + SPROUT_CONSTEXPR inline typename sprout::tuples::tuple_construct_traits< + typename std::remove_reference::type + >::copied_type deep_copy(Tuple&& tup) { + typedef typename std::remove_reference::type tuple_type; + return sprout::tuples::tuple_construct_traits::deep_copy(sprout::forward(tup)); + } + } // namespace tuples +} // namespace sprout + +#endif // #ifndef SPROUT_TUPLE_DEEP_COPY_HPP diff --git a/sprout/tuple/functions.hpp b/sprout/tuple/functions.hpp index 296a4b37..677ae18d 100644 --- a/sprout/tuple/functions.hpp +++ b/sprout/tuple/functions.hpp @@ -1,8 +1,8 @@ #ifndef SPROUT_TUPLE_FUNCTIONS_HPP #define SPROUT_TUPLE_FUNCTIONS_HPP -#include -#include -#include +#include +#include +#include #endif // #ifndef SPROUT_TUPLE_FUNCTIONS_HPP diff --git a/sprout/tuple/make.hpp b/sprout/tuple/make.hpp new file mode 100644 index 00000000..ff39db89 --- /dev/null +++ b/sprout/tuple/make.hpp @@ -0,0 +1,23 @@ +#ifndef SPROUT_TUPLE_MAKE_HPP +#define SPROUT_TUPLE_MAKE_HPP + +#include +#include +#include +#include + +namespace sprout { + namespace tuples { + // + // make + // + template + SPROUT_CONSTEXPR inline typename sprout::tuples::tuple_construct_traits::copied_type make(Args&&... args) { + return sprout::tuples::tuple_construct_traits::make( + sprout::forward(args)... + ); + } + } // namespace tuples +} // namespace sprout + +#endif // #ifndef SPROUT_TUPLE_MAKE_HPP diff --git a/sprout/tuple/make_clone.hpp b/sprout/tuple/make_clone.hpp deleted file mode 100644 index ff378ba9..00000000 --- a/sprout/tuple/make_clone.hpp +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef SPROUT_TUPLE_MAKE_CLONE_HPP -#define SPROUT_TUPLE_MAKE_CLONE_HPP - -#include -#include -#include -#include - -namespace sprout { - namespace tuples { - // - // make_clone - // - template - SPROUT_CONSTEXPR inline typename sprout::tuples::tuple_traits< - typename std::remove_reference::type - >::clone_type make_clone(Args&&... args) { - typedef typename std::remove_reference::type tuple_type; - return sprout::tuples::make_clone_functor().template operator()(sprout::forward(args)...); - } - } // namespace tuples -} // namespace sprout - -#endif // #ifndef SPROUT_TUPLE_MAKE_CLONE_HPP diff --git a/sprout/tuple/operation/append_back.hpp b/sprout/tuple/operation/append_back.hpp index 7db22e92..b491dc1c 100644 --- a/sprout/tuple/operation/append_back.hpp +++ b/sprout/tuple/operation/append_back.hpp @@ -28,7 +28,7 @@ namespace sprout { sprout::index_tuple ) { - return sprout::tuples::remake_clone( + return sprout::tuples::remake( t, sprout::tuples::get(t)..., sprout::tuples::get(input)... diff --git a/sprout/tuple/operation/append_front.hpp b/sprout/tuple/operation/append_front.hpp index 123881b5..3cef9b3b 100644 --- a/sprout/tuple/operation/append_front.hpp +++ b/sprout/tuple/operation/append_front.hpp @@ -28,7 +28,7 @@ namespace sprout { sprout::index_tuple ) { - return sprout::tuples::remake_clone( + return sprout::tuples::remake( t, sprout::tuples::get(input)..., sprout::tuples::get(t)... diff --git a/sprout/tuple/operation/push_back.hpp b/sprout/tuple/operation/push_back.hpp index 6a0329d9..f7b2639d 100644 --- a/sprout/tuple/operation/push_back.hpp +++ b/sprout/tuple/operation/push_back.hpp @@ -27,7 +27,7 @@ namespace sprout { sprout::index_tuple ) { - return sprout::tuples::remake_clone( + return sprout::tuples::remake( t, sprout::tuples::get(t)..., v diff --git a/sprout/tuple/operation/push_front.hpp b/sprout/tuple/operation/push_front.hpp index 4cdc00ad..c63b091b 100644 --- a/sprout/tuple/operation/push_front.hpp +++ b/sprout/tuple/operation/push_front.hpp @@ -27,7 +27,7 @@ namespace sprout { sprout::index_tuple ) { - return sprout::tuples::remake_clone( + return sprout::tuples::remake( t, v, sprout::tuples::get(t)... diff --git a/sprout/tuple/pit.hpp b/sprout/tuple/pit.hpp index c680434f..43c44ea2 100644 --- a/sprout/tuple/pit.hpp +++ b/sprout/tuple/pit.hpp @@ -14,23 +14,23 @@ namespace sprout { // get // template - typename sprout::fixed_container_traits >::value_type& get( + typename sprout::container_traits >::value_type& get( sprout::pit& t ) SPROUT_NOEXCEPT { - static_assert(I < sprout::fixed_container_traits >::fixed_size, "get: index out of range"); + static_assert(I < sprout::container_traits >::static_size, "get: index out of range"); return t[I]; } template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits >::value_type const& get( + SPROUT_CONSTEXPR typename sprout::container_traits >::value_type const& get( sprout::pit const& t ) SPROUT_NOEXCEPT { - static_assert(I < sprout::fixed_container_traits >::fixed_size, "get: index out of range"); + static_assert(I < sprout::container_traits >::static_size, "get: index out of range"); return t[I]; } template - typename sprout::fixed_container_traits >::value_type&& get( + typename sprout::container_traits >::value_type&& get( sprout::pit&& t ) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::move(sprout::tuples::get(t)))) { diff --git a/sprout/tuple/remake.hpp b/sprout/tuple/remake.hpp new file mode 100644 index 00000000..573be17d --- /dev/null +++ b/sprout/tuple/remake.hpp @@ -0,0 +1,28 @@ +#ifndef SPROUT_TUPLE_REMAKE_HPP +#define SPROUT_TUPLE_REMAKE_HPP + +#include +#include +#include +#include + +namespace sprout { + namespace tuples { + // + // remake + // + template + SPROUT_CONSTEXPR inline typename sprout::tuples::tuple_construct_traits::copied_type remake( + Tup&& tup, + Args&&... args + ) + { + return sprout::tuples::tuple_construct_traits::remake( + sprout::forward(tup), + sprout::forward(args)... + ); + } + } // namespace tuples +} // namespace sprout + +#endif // #ifndef SPROUT_TUPLE_REMAKE_HPP diff --git a/sprout/tuple/remake_clone.hpp b/sprout/tuple/remake_clone.hpp deleted file mode 100644 index fee6e357..00000000 --- a/sprout/tuple/remake_clone.hpp +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef SPROUT_TUPLE_REMAKE_CLONE_HPP -#define SPROUT_TUPLE_REMAKE_CLONE_HPP - -#include -#include -#include -#include - -namespace sprout { - namespace tuples { - // - // remake_clone - // - template - SPROUT_CONSTEXPR inline typename sprout::tuples::tuple_traits< - typename std::remove_reference::type - >::clone_type remake_clone( - Other&& other, - Args&&... args - ) - { - typedef typename std::remove_reference::type tuple_type; - return sprout::tuples::remake_clone_functor().template operator()( - sprout::forward(other), - sprout::forward(args)... - ); - } - } // namespace tuples -} // namespace sprout - -#endif // #ifndef SPROUT_TUPLE_REMAKE_CLONE_HPP diff --git a/sprout/tuple/sub_array.hpp b/sprout/tuple/sub_array.hpp index a5b90938..abd89496 100644 --- a/sprout/tuple/sub_array.hpp +++ b/sprout/tuple/sub_array.hpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include #include @@ -16,23 +16,23 @@ namespace sprout { // get // template - typename sprout::fixed_container_traits >::value_type& get( + typename sprout::container_traits >::value_type& get( sprout::sub_array& t - ) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(*sprout::next(sprout::fixed_begin(t), I))) + ) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(*sprout::next(sprout::internal_begin(t), I))) { - static_assert(I < sprout::fixed_container_traits >::fixed_size, "get: index out of range"); - return *sprout::next(sprout::fixed_begin(t), I); + static_assert(I < sprout::container_traits >::static_size, "get: index out of range"); + return *sprout::next(sprout::internal_begin(t), I); } template - SPROUT_CONSTEXPR typename sprout::fixed_container_traits >::value_type const& get( + SPROUT_CONSTEXPR typename sprout::container_traits >::value_type const& get( sprout::sub_array const& t - ) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(*sprout::next(sprout::fixed_begin(t), I))) + ) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(*sprout::next(sprout::internal_begin(t), I))) { - static_assert(I < sprout::fixed_container_traits >::fixed_size, "get: index out of range"); - return *sprout::next(sprout::fixed_begin(t), I); + static_assert(I < sprout::container_traits >::static_size, "get: index out of range"); + return *sprout::next(sprout::internal_begin(t), I); } template - typename sprout::fixed_container_traits >::value_type&& get( + typename sprout::container_traits >::value_type&& get( sprout::sub_array&& t ) SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::move(sprout::tuples::get(t)))) { diff --git a/sprout/tuple/traits.hpp b/sprout/tuple/traits.hpp index c47ae9e0..49c11b58 100644 --- a/sprout/tuple/traits.hpp +++ b/sprout/tuple/traits.hpp @@ -2,6 +2,7 @@ #define SPROUT_TUPLE_TRAITS_HPP #include +#include #include #include @@ -26,20 +27,6 @@ namespace sprout { namespace sprout { namespace tuples { - // - // tuple_traits - // - template - struct tuple_traits { - public: - typedef Tuple internal_type; - typedef Tuple clone_type; - }; - template - struct tuple_traits - : public sprout::tuples::tuple_traits - {}; - // // rebind_types // @@ -49,59 +36,64 @@ namespace sprout { {}; // - // clone_functor + // tuple_construct_traits // template - struct clone_functor { - public: - template - SPROUT_CONSTEXPR typename sprout::tuples::tuple_traits::clone_type operator()(Other&& t) const { - return typename sprout::tuples::tuple_traits::clone_type(sprout::forward(t)); - } - }; - template - struct clone_functor - : public sprout::tuples::clone_functor - {}; + struct tuple_construct_traits; + + namespace detail { + template + struct default_copied; + template + struct default_copied > { + public: + typedef typename sprout::tuples::rebind_types::template apply< + typename std::decay< + typename sprout::tuples::tuple_element::type + >::type... + >::type type; + }; + + template + SPROUT_CONSTEXPR typename sprout::tuples::tuple_construct_traits::copied_type + default_make_tuple(Args&&... args) { + typedef typename sprout::tuples::tuple_construct_traits::copied_type copied_type; + return copied_type(sprout::forward(args)...); + } + } // namespace detail - // - // make_clone_functor - // template - struct make_clone_functor { + struct tuple_construct_traits { public: + typedef typename sprout::tuples::detail::default_copied< + Tuple, + typename sprout::index_range<0, sprout::tuples::tuple_size::value>::type + >::type copied_type; + public: + template + static SPROUT_CONSTEXPR copied_type deep_copy(Tup&& tup) { + return sprout::forward(tup); + } template - SPROUT_CONSTEXPR typename sprout::tuples::tuple_traits::clone_type operator()(Args&&... args) const { - return typename sprout::tuples::tuple_traits::clone_type(sprout::forward(args)...); + static SPROUT_CONSTEXPR copied_type make(Args&&... args) { + return sprout::tuples::detail::default_make_tuple(sprout::forward(args)...); } - }; - template - struct make_clone_functor - : public sprout::tuples::make_clone_functor - {}; - - // - // remake_clone_functor - // - template - struct remake_clone_functor { - public: - template - SPROUT_CONSTEXPR typename sprout::tuples::tuple_traits::clone_type operator()( - Other&& other, + template + static SPROUT_CONSTEXPR copied_type remake( + Tup&& tup, Args&&... args - ) const + ) { - return sprout::tuples::make_clone_functor().template operator()(sprout::forward(args)...); + return make(sprout::forward(args)...); } }; template - struct remake_clone_functor - : public sprout::tuples::remake_clone_functor + struct tuple_construct_traits + : public sprout::tuples::tuple_construct_traits {}; } // namespace tuples - using sprout::tuples::tuple_traits; + using sprout::tuples::tuple_construct_traits; } // namespace sprout #endif // #ifndef SPROUT_TUPLE_TRAITS_HPP diff --git a/sprout/type/string/to_string.hpp b/sprout/type/string/to_string.hpp index 8240633c..ed944459 100644 --- a/sprout/type/string/to_string.hpp +++ b/sprout/type/string/to_string.hpp @@ -7,9 +7,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include #include #include @@ -22,7 +22,7 @@ namespace sprout { struct to_string { private: typedef decltype(Proxy()()) string_type; - typedef sprout::fixed_container_traits traits_type; + typedef sprout::container_traits traits_type; private: template struct impl; diff --git a/sprout/uuid/uuid.hpp b/sprout/uuid/uuid.hpp index 1067c1b3..35f68873 100644 --- a/sprout/uuid/uuid.hpp +++ b/sprout/uuid/uuid.hpp @@ -68,7 +68,6 @@ namespace sprout { }; public: SPROUT_STATIC_CONSTEXPR size_type static_size = 16; - SPROUT_STATIC_CONSTEXPR size_type fixed_size = static_size; public: value_type elems[static_size]; public: diff --git a/sprout/variant/variant.hpp b/sprout/variant/variant.hpp index 3d69819a..9f24dbf5 100644 --- a/sprout/variant/variant.hpp +++ b/sprout/variant/variant.hpp @@ -23,7 +23,7 @@ namespace sprout { private: template static SPROUT_CONSTEXPR tuple_type init(T&& operand, sprout::index_tuple) { - return sprout::tuples::make_clone( + return sprout::tuples::make( typename sprout::tuples::tuple_element::type()..., sprout::forward(operand) ); diff --git a/sprout/weed/attr_cnv/bitwise_or.hpp b/sprout/weed/attr_cnv/bitwise_or.hpp index 9c69374e..f3ebcd7e 100644 --- a/sprout/weed/attr_cnv/bitwise_or.hpp +++ b/sprout/weed/attr_cnv/bitwise_or.hpp @@ -3,7 +3,7 @@ #include #include -#include +#include #include #include #include @@ -51,7 +51,7 @@ namespace sprout { typename sprout::weed::attr_cnv::result_of::bitwise_or::type >::type bitwise_or(X const& x) { typedef typename sprout::weed::attr_cnv::result_of::bitwise_or::type type; - return sprout::make_clone(x); + return sprout::make(x); } // V | container -> container template @@ -70,7 +70,7 @@ namespace sprout { typename sprout::weed::attr_cnv::result_of::bitwise_or::type >::type bitwise_or(X const& x) { typedef typename sprout::weed::attr_cnv::result_of::bitwise_or::type type; - return sprout::make_clone(x); + return sprout::make(x); } // tuple | tuple -> tuple template @@ -105,7 +105,7 @@ namespace sprout { typename sprout::weed::attr_cnv::result_of::bitwise_or::type >::type bitwise_or(X const& x) { typedef typename sprout::weed::attr_cnv::result_of::bitwise_or::type type; - return sprout::make_clone(x); + return sprout::make(x); } template SPROUT_CONSTEXPR inline typename std::enable_if< @@ -114,7 +114,7 @@ namespace sprout { typename sprout::weed::attr_cnv::result_of::bitwise_or::type >::type bitwise_or(X const& x) { typedef typename sprout::weed::attr_cnv::result_of::bitwise_or::type type; - return sprout::make_clone(); + return sprout::make(); } // unused | V -> container template @@ -124,7 +124,7 @@ namespace sprout { typename sprout::weed::attr_cnv::result_of::bitwise_or::type >::type bitwise_or(X const& x) { typedef typename sprout::weed::attr_cnv::result_of::bitwise_or::type type; - return sprout::make_clone(x); + return sprout::make(x); } template SPROUT_CONSTEXPR inline typename std::enable_if< @@ -133,7 +133,7 @@ namespace sprout { typename sprout::weed::attr_cnv::result_of::bitwise_or::type >::type bitwise_or(X const& x) { typedef typename sprout::weed::attr_cnv::result_of::bitwise_or::type type; - return sprout::make_clone(); + return sprout::make(); } // unused >> unused -> unused template diff --git a/sprout/weed/attr_cnv/result_of/bitwise_or.hpp b/sprout/weed/attr_cnv/result_of/bitwise_or.hpp index 4009c8d0..57127b97 100644 --- a/sprout/weed/attr_cnv/result_of/bitwise_or.hpp +++ b/sprout/weed/attr_cnv/result_of/bitwise_or.hpp @@ -55,9 +55,9 @@ namespace sprout { > { public: typedef typename std::conditional< - sprout::fixed_container_traits::fixed_size != 0, + sprout::container_traits::static_size != 0, T, - typename sprout::rebind_fixed_size::template apply<1>::type + typename sprout::container_transform_traits::template rebind_size<1>::type >::type type; }; // V | container -> container @@ -71,9 +71,9 @@ namespace sprout { > { public: typedef typename std::conditional< - sprout::fixed_container_traits::fixed_size != 0, + sprout::container_traits::static_size != 0, U, - typename sprout::rebind_fixed_size::template apply<1>::type + typename sprout::container_transform_traits::template rebind_size<1>::type >::type type; }; // tuple | tuple -> tuple diff --git a/sprout/weed/attr_cnv/shift_left.hpp b/sprout/weed/attr_cnv/shift_left.hpp index 498bf326..d4feb71d 100644 --- a/sprout/weed/attr_cnv/shift_left.hpp +++ b/sprout/weed/attr_cnv/shift_left.hpp @@ -84,7 +84,7 @@ namespace sprout { typename sprout::weed::attr_cnv::result_of::shift_left::type >::type shift_left(T const& t, U const& u) { typedef typename sprout::weed::attr_cnv::result_of::shift_left::type type; - return sprout::make_clone(t, u); + return sprout::make(t, u); } // V >> W -> tuple template diff --git a/sprout/weed/attr_cnv/times.hpp b/sprout/weed/attr_cnv/times.hpp index ee86eeed..3d4f3a71 100644 --- a/sprout/weed/attr_cnv/times.hpp +++ b/sprout/weed/attr_cnv/times.hpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include #include @@ -25,7 +25,7 @@ namespace sprout { typename sprout::weed::attr_cnv::result_of::times::type >::type times(Args const&... args) { return sprout::algorithm::join( - sprout::make_clone >(args...) + sprout::make >(args...) ); } // times(V) -> container @@ -36,7 +36,7 @@ namespace sprout { typename sprout::weed::attr_cnv::result_of::times::type >::type times(Args const&... args) { typedef typename sprout::weed::attr_cnv::result_of::times::type type; - return sprout::make_clone(args...); + return sprout::make(args...); } // times(unused) -> unused template diff --git a/sprout/weed/context/parse_context/terminal/string.hpp b/sprout/weed/context/parse_context/terminal/string.hpp index 6ab54a4d..42dd42bb 100644 --- a/sprout/weed/context/parse_context/terminal/string.hpp +++ b/sprout/weed/context/parse_context/terminal/string.hpp @@ -3,9 +3,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include #include #include diff --git a/sprout/weed/parser/string/string.hpp b/sprout/weed/parser/string/string.hpp index 43ba6ee6..4157b7ca 100644 --- a/sprout/weed/parser/string/string.hpp +++ b/sprout/weed/parser/string/string.hpp @@ -4,9 +4,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include #include #include #include diff --git a/testspr/print.hpp b/testspr/print.hpp index 6a7cfae3..ad50662e 100644 --- a/testspr/print.hpp +++ b/testspr/print.hpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include namespace testspr { // diff --git a/testspr/sprout/algorithm/bogo_sort.hpp b/testspr/sprout/algorithm/bogo_sort.hpp index 2b754744..60b0878b 100644 --- a/testspr/sprout/algorithm/bogo_sort.hpp +++ b/testspr/sprout/algorithm/bogo_sort.hpp @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -48,7 +48,7 @@ namespace testspr { array{{1, 2, 4}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sorted), + sprout::get_internal(sorted), array{{5, 1, 2, 4, 3}} )); } @@ -62,7 +62,7 @@ namespace testspr { array{{1, 2, 4}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sorted), + sprout::get_internal(sorted), array{{5, 1, 2, 4, 3}} )); } @@ -106,7 +106,7 @@ namespace testspr { array{{1, 2, 4}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sorted), + sprout::get_internal(sorted), array{{5, 1, 2, 4, 3}} )); } @@ -121,7 +121,7 @@ namespace testspr { array{{1, 2, 4}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sorted), + sprout::get_internal(sorted), array{{5, 1, 2, 4, 3}} )); } diff --git a/testspr/sprout/algorithm/bogo_sort_result.hpp b/testspr/sprout/algorithm/bogo_sort_result.hpp index 4a00de7b..60f54d9e 100644 --- a/testspr/sprout/algorithm/bogo_sort_result.hpp +++ b/testspr/sprout/algorithm/bogo_sort_result.hpp @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -59,7 +59,7 @@ namespace testspr { array{{1, 2, 4}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sprout::get<0>(sorted)), + sprout::get_internal(sprout::get<0>(sorted)), array{{5, 1, 2, 4, 3}} )); SPROUT_STATIC_CONSTEXPR auto sorted2 = sprout::bogo_sort_result( @@ -78,7 +78,7 @@ namespace testspr { array{{1, 2, 4}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sprout::get<0>(sorted)), + sprout::get_internal(sprout::get<0>(sorted)), array{{5, 1, 2, 4, 3}} )); SPROUT_STATIC_CONSTEXPR auto sorted2 = sprout::bogo_sort_result( @@ -138,7 +138,7 @@ namespace testspr { array{{1, 2, 4}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sprout::get<0>(sorted)), + sprout::get_internal(sprout::get<0>(sorted)), array{{5, 1, 2, 4, 3}} )); SPROUT_STATIC_CONSTEXPR auto sorted2 = sprout::bogo_sort_result( @@ -158,7 +158,7 @@ namespace testspr { array{{1, 2, 4}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sprout::get<0>(sorted)), + sprout::get_internal(sprout::get<0>(sorted)), array{{5, 1, 2, 4, 3}} )); SPROUT_STATIC_CONSTEXPR auto sorted2 = sprout::bogo_sort_result( diff --git a/testspr/sprout/algorithm/copy.hpp b/testspr/sprout/algorithm/copy.hpp index 2693b877..5b8e0028 100644 --- a/testspr/sprout/algorithm/copy.hpp +++ b/testspr/sprout/algorithm/copy.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -75,7 +75,7 @@ namespace testspr { array{{3, 4, 5, 6, 7, 8}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(copied), + sprout::get_internal(copied), array{{0, 0, 3, 4, 5, 6, 7, 8, 0, 0}} )); } @@ -90,7 +90,7 @@ namespace testspr { array{{3, 4, 5, 6, 7, 8}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(copied), + sprout::get_internal(copied), array{{0, 0, 3, 4, 5, 6, 7, 8, 0, 0}} )); } diff --git a/testspr/sprout/algorithm/copy_backward.hpp b/testspr/sprout/algorithm/copy_backward.hpp index cdaf2bef..632239de 100644 --- a/testspr/sprout/algorithm/copy_backward.hpp +++ b/testspr/sprout/algorithm/copy_backward.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -75,7 +75,7 @@ namespace testspr { array{{3, 4, 5, 6, 7, 8}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(copied), + sprout::get_internal(copied), array{{0, 0, 3, 4, 5, 6, 7, 8, 0, 0}} )); } @@ -90,7 +90,7 @@ namespace testspr { array{{3, 4, 5, 6, 7, 8}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(copied), + sprout::get_internal(copied), array{{0, 0, 3, 4, 5, 6, 7, 8, 0, 0}} )); } diff --git a/testspr/sprout/algorithm/copy_if.hpp b/testspr/sprout/algorithm/copy_if.hpp index 08fad8fd..3966b306 100644 --- a/testspr/sprout/algorithm/copy_if.hpp +++ b/testspr/sprout/algorithm/copy_if.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -80,7 +80,7 @@ namespace testspr { array{{1, 3, 5, 7, 9, 0}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(copied), + sprout::get_internal(copied), array{{0, 0, 1, 3, 5, 7, 9, 0, 0, 0}} )); } @@ -96,7 +96,7 @@ namespace testspr { array{{1, 3, 5, 7, 9}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(copied), + sprout::get_internal(copied), array{{0, 0, 1, 3, 5, 7, 9, 0, 0, 0}} )); } diff --git a/testspr/sprout/algorithm/copy_n.hpp b/testspr/sprout/algorithm/copy_n.hpp index 54047c52..fd58a5ee 100644 --- a/testspr/sprout/algorithm/copy_n.hpp +++ b/testspr/sprout/algorithm/copy_n.hpp @@ -3,7 +3,7 @@ #include #include -#include +#include #include namespace testspr { @@ -75,7 +75,7 @@ namespace testspr { array{{3, 4, 5, 6, 7, 8}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(copied), + sprout::get_internal(copied), array{{0, 0, 3, 4, 5, 6, 7, 8, 0, 0}} )); } @@ -90,7 +90,7 @@ namespace testspr { array{{3, 4, 5, 6, 7, 8}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(copied), + sprout::get_internal(copied), array{{0, 0, 3, 4, 5, 6, 7, 8, 0, 0}} )); } diff --git a/testspr/sprout/algorithm/fill.hpp b/testspr/sprout/algorithm/fill.hpp index bd2dda25..141087d4 100644 --- a/testspr/sprout/algorithm/fill.hpp +++ b/testspr/sprout/algorithm/fill.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -46,7 +46,7 @@ namespace testspr { array{{-1, -1, -1, -1, -1, -1}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(filled), + sprout::get_internal(filled), array{{1, 2, -1, -1, -1, -1, -1, -1, 9, 10}} )); } @@ -60,7 +60,7 @@ namespace testspr { array{{-1, -1, -1, -1, -1, -1}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(filled), + sprout::get_internal(filled), array{{1, 2, -1, -1, -1, -1, -1, -1, 9, 10}} )); } diff --git a/testspr/sprout/algorithm/fill_n.hpp b/testspr/sprout/algorithm/fill_n.hpp index 12b1c1c1..ba1cc6b8 100644 --- a/testspr/sprout/algorithm/fill_n.hpp +++ b/testspr/sprout/algorithm/fill_n.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -49,7 +49,7 @@ namespace testspr { array{{-1, -1, -1, -1, 7, 8}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(filled), + sprout::get_internal(filled), array{{1, 2, -1, -1, -1, -1, 7, 8, 9, 10}} )); } @@ -64,7 +64,7 @@ namespace testspr { array{{-1, -1, -1, -1}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(filled), + sprout::get_internal(filled), array{{1, 2, -1, -1, -1, -1, 7, 8, 9, 10}} )); } diff --git a/testspr/sprout/algorithm/generate.hpp b/testspr/sprout/algorithm/generate.hpp index 645a0248..cc00163c 100644 --- a/testspr/sprout/algorithm/generate.hpp +++ b/testspr/sprout/algorithm/generate.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -49,7 +49,7 @@ namespace testspr { array{{2, 4, 8, 16, 32, 64}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(generated), + sprout::get_internal(generated), array{{1, 2, 2, 4, 8, 16, 32, 64, 9, 10}} )); } @@ -64,7 +64,7 @@ namespace testspr { array{{2, 4, 8, 16, 32, 64}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(generated), + sprout::get_internal(generated), array{{1, 2, 2, 4, 8, 16, 32, 64, 9, 10}} )); } diff --git a/testspr/sprout/algorithm/generate_n.hpp b/testspr/sprout/algorithm/generate_n.hpp index 178e4dbe..745cb53e 100644 --- a/testspr/sprout/algorithm/generate_n.hpp +++ b/testspr/sprout/algorithm/generate_n.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -52,7 +52,7 @@ namespace testspr { array{{1, 2, 4, 8, 7, 8}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(generated), + sprout::get_internal(generated), array{{1, 2, 1, 2, 4, 8, 7, 8, 9, 10}} )); } @@ -68,7 +68,7 @@ namespace testspr { array{{1, 2, 4, 8}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(generated), + sprout::get_internal(generated), array{{1, 2, 1, 2, 4, 8, 7, 8, 9, 10}} )); } diff --git a/testspr/sprout/algorithm/inplace_merge.hpp b/testspr/sprout/algorithm/inplace_merge.hpp index 1e2af89a..dff1aaa6 100644 --- a/testspr/sprout/algorithm/inplace_merge.hpp +++ b/testspr/sprout/algorithm/inplace_merge.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -46,7 +46,7 @@ namespace testspr { array{{2, 4, 5, 6, 7, 9}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{1, 3, 2, 4, 5, 6, 7, 9, 8, 10}} )); } @@ -60,7 +60,7 @@ namespace testspr { array{{2, 4, 5, 6, 7, 9}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{1, 3, 2, 4, 5, 6, 7, 9, 8, 10}} )); } @@ -104,7 +104,7 @@ namespace testspr { array{{2, 4, 5, 6, 7, 9}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{1, 3, 2, 4, 5, 6, 7, 9, 8, 10}} )); } @@ -119,7 +119,7 @@ namespace testspr { array{{2, 4, 5, 6, 7, 9}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{1, 3, 2, 4, 5, 6, 7, 9, 8, 10}} )); } diff --git a/testspr/sprout/algorithm/make_heap.hpp b/testspr/sprout/algorithm/make_heap.hpp index 79f91785..60fa1b0a 100644 --- a/testspr/sprout/algorithm/make_heap.hpp +++ b/testspr/sprout/algorithm/make_heap.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -43,7 +43,7 @@ namespace testspr { array{{9, 6, 8, 2, 5, 3, 4, 1}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(heap), + sprout::get_internal(heap), array{{10, 7, 9, 6, 8, 2, 5, 3, 4, 1}} )); } @@ -56,7 +56,7 @@ namespace testspr { array{{9, 6, 8, 2, 5, 3, 4, 1}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(heap), + sprout::get_internal(heap), array{{10, 7, 9, 6, 8, 2, 5, 3, 4, 1}} )); } @@ -97,7 +97,7 @@ namespace testspr { array{{9, 6, 8, 2, 5, 3, 4, 1}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(heap), + sprout::get_internal(heap), array{{10, 7, 9, 6, 8, 2, 5, 3, 4, 1}} )); } @@ -111,7 +111,7 @@ namespace testspr { array{{9, 6, 8, 2, 5, 3, 4, 1}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(heap), + sprout::get_internal(heap), array{{10, 7, 9, 6, 8, 2, 5, 3, 4, 1}} )); } diff --git a/testspr/sprout/algorithm/make_partial_heap.hpp b/testspr/sprout/algorithm/make_partial_heap.hpp index 0f3ee4b3..641602be 100644 --- a/testspr/sprout/algorithm/make_partial_heap.hpp +++ b/testspr/sprout/algorithm/make_partial_heap.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -46,7 +46,7 @@ namespace testspr { array{{3, 1, 2, 9, 8, 6, 5, 4}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(heap), + sprout::get_internal(heap), array{{10, 7, 3, 1, 2, 9, 8, 6, 5, 4}} )); } @@ -60,7 +60,7 @@ namespace testspr { array{{3, 1, 2}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(heap), + sprout::get_internal(heap), array{{10, 7, 3, 1, 2, 9, 8, 6, 5, 4}} )); } @@ -104,7 +104,7 @@ namespace testspr { array{{3, 1, 2, 9, 8, 6, 5, 4}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(heap), + sprout::get_internal(heap), array{{10, 7, 3, 1, 2, 9, 8, 6, 5, 4}} )); } @@ -119,7 +119,7 @@ namespace testspr { array{{3, 1, 2}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(heap), + sprout::get_internal(heap), array{{10, 7, 3, 1, 2, 9, 8, 6, 5, 4}} )); } diff --git a/testspr/sprout/algorithm/merge.hpp b/testspr/sprout/algorithm/merge.hpp index c176cccb..d7a98e98 100644 --- a/testspr/sprout/algorithm/merge.hpp +++ b/testspr/sprout/algorithm/merge.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -86,7 +86,7 @@ namespace testspr { array{{2, 3, 4, 5, 6, 7}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{0, 0, 2, 3, 4, 5, 6, 7, 0, 0}} )); } @@ -103,7 +103,7 @@ namespace testspr { array{{2, 3, 4, 5, 6, 7}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{0, 0, 2, 3, 4, 5, 6, 7, 0, 0}} )); } @@ -189,7 +189,7 @@ namespace testspr { array{{2, 3, 4, 5, 6, 7}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{0, 0, 2, 3, 4, 5, 6, 7, 0, 0}} )); } @@ -207,7 +207,7 @@ namespace testspr { array{{2, 3, 4, 5, 6, 7}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{0, 0, 2, 3, 4, 5, 6, 7, 0, 0}} )); } diff --git a/testspr/sprout/algorithm/nth_element.hpp b/testspr/sprout/algorithm/nth_element.hpp index e35185e8..63dbbac5 100644 --- a/testspr/sprout/algorithm/nth_element.hpp +++ b/testspr/sprout/algorithm/nth_element.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -46,7 +46,7 @@ namespace testspr { array{{2, 3, 5, 9, 8, 6}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(nth), + sprout::get_internal(nth), array{{10, 7, 2, 3, 5, 9, 8, 6, 4, 1}} )); } @@ -60,7 +60,7 @@ namespace testspr { array{{2, 3, 5}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(nth), + sprout::get_internal(nth), array{{10, 7, 2, 3, 5, 9, 8, 6, 4, 1}} )); } @@ -104,7 +104,7 @@ namespace testspr { array{{2, 3, 5, 9, 8, 6}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(nth), + sprout::get_internal(nth), array{{10, 7, 2, 3, 5, 9, 8, 6, 4, 1}} )); } @@ -119,7 +119,7 @@ namespace testspr { array{{2, 3, 5}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(nth), + sprout::get_internal(nth), array{{10, 7, 2, 3, 5, 9, 8, 6, 4, 1}} )); } diff --git a/testspr/sprout/algorithm/partial_sort.hpp b/testspr/sprout/algorithm/partial_sort.hpp index d5cffcf5..dc2c737c 100644 --- a/testspr/sprout/algorithm/partial_sort.hpp +++ b/testspr/sprout/algorithm/partial_sort.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -46,7 +46,7 @@ namespace testspr { array{{2, 3, 4, 9, 8, 7}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sorted), + sprout::get_internal(sorted), array{{5, 1, 2, 3, 4, 9, 8, 7, 10, 6}} )); } @@ -60,7 +60,7 @@ namespace testspr { array{{2, 3, 4}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sorted), + sprout::get_internal(sorted), array{{5, 1, 2, 3, 4, 9, 8, 7, 10, 6}} )); } @@ -104,7 +104,7 @@ namespace testspr { array{{2, 3, 4, 9, 8, 7}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sorted), + sprout::get_internal(sorted), array{{5, 1, 2, 3, 4, 9, 8, 7, 10, 6}} )); } @@ -119,7 +119,7 @@ namespace testspr { array{{2, 3, 4}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sorted), + sprout::get_internal(sorted), array{{5, 1, 2, 3, 4, 9, 8, 7, 10, 6}} )); } diff --git a/testspr/sprout/algorithm/partition.hpp b/testspr/sprout/algorithm/partition.hpp index aecca9bd..dc47fd1a 100644 --- a/testspr/sprout/algorithm/partition.hpp +++ b/testspr/sprout/algorithm/partition.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -46,7 +46,7 @@ namespace testspr { array{{7, 5, 3, 4, 6, 8}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(partitioned), + sprout::get_internal(partitioned), array{{1, 2, 7, 5, 3, 4, 6, 8, 9, 10}} )); } @@ -60,7 +60,7 @@ namespace testspr { array{{7, 5, 3}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(partitioned), + sprout::get_internal(partitioned), array{{1, 2, 7, 5, 3, 4, 6, 8, 9, 10}} )); } diff --git a/testspr/sprout/algorithm/partition_copy.hpp b/testspr/sprout/algorithm/partition_copy.hpp index 0d53946f..1a013ac3 100644 --- a/testspr/sprout/algorithm/partition_copy.hpp +++ b/testspr/sprout/algorithm/partition_copy.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -80,7 +80,7 @@ namespace testspr { array{{7, 5, 3, 4, 6, 8}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(partitioned), + sprout::get_internal(partitioned), array{{0, 0, 7, 5, 3, 4, 6, 8, 0, 0}} )); } @@ -96,7 +96,7 @@ namespace testspr { array{{7, 5, 3}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(partitioned), + sprout::get_internal(partitioned), array{{0, 0, 7, 5, 3, 4, 6, 8, 0, 0}} )); } diff --git a/testspr/sprout/algorithm/pop_heap.hpp b/testspr/sprout/algorithm/pop_heap.hpp index a01739b8..0c484ac6 100644 --- a/testspr/sprout/algorithm/pop_heap.hpp +++ b/testspr/sprout/algorithm/pop_heap.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -43,7 +43,7 @@ namespace testspr { array{{7, 6, 4, 5, 3, 1, 2, 9}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(heap), + sprout::get_internal(heap), array{{10, 8, 7, 6, 4, 5, 3, 1, 2, 9}} )); } @@ -56,7 +56,7 @@ namespace testspr { array{{7, 6, 4, 5, 3, 1, 2}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(heap), + sprout::get_internal(heap), array{{10, 8, 7, 6, 4, 5, 3, 1, 2, 9}} )); } diff --git a/testspr/sprout/algorithm/push_heap.hpp b/testspr/sprout/algorithm/push_heap.hpp index 5d20b257..28ff9a69 100644 --- a/testspr/sprout/algorithm/push_heap.hpp +++ b/testspr/sprout/algorithm/push_heap.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -43,7 +43,7 @@ namespace testspr { array{{9, 7, 4, 6, 3, 1, 2, 5}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(heap), + sprout::get_internal(heap), array{{10, 8, 9, 7, 4, 6, 3, 1, 2, 5}} )); } @@ -56,7 +56,7 @@ namespace testspr { array{{9, 7, 4, 6, 3, 1, 2, 5}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(heap), + sprout::get_internal(heap), array{{10, 8, 9, 7, 4, 6, 3, 1, 2, 5}} )); } @@ -97,7 +97,7 @@ namespace testspr { array{{9, 7, 4, 6, 3, 1, 2, 5}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(heap), + sprout::get_internal(heap), array{{10, 8, 9, 7, 4, 6, 3, 1, 2, 5}} )); } @@ -111,7 +111,7 @@ namespace testspr { array{{9, 7, 4, 6, 3, 1, 2, 5}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(heap), + sprout::get_internal(heap), array{{10, 8, 9, 7, 4, 6, 3, 1, 2, 5}} )); } diff --git a/testspr/sprout/algorithm/remove.hpp b/testspr/sprout/algorithm/remove.hpp index 4e97210c..d4103f5a 100644 --- a/testspr/sprout/algorithm/remove.hpp +++ b/testspr/sprout/algorithm/remove.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -46,7 +46,7 @@ namespace testspr { array{{3, 5, 7, 0, 7, 0}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(removed), + sprout::get_internal(removed), array{{1, 0, 3, 5, 7, 0, 7, 0, 9, 0}} )); } @@ -60,7 +60,7 @@ namespace testspr { array{{3, 5, 7}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(removed), + sprout::get_internal(removed), array{{1, 0, 3, 5, 7, 0, 7, 0, 9, 0}} )); } diff --git a/testspr/sprout/algorithm/remove_copy.hpp b/testspr/sprout/algorithm/remove_copy.hpp index de73e969..e8bc95fe 100644 --- a/testspr/sprout/algorithm/remove_copy.hpp +++ b/testspr/sprout/algorithm/remove_copy.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -80,7 +80,7 @@ namespace testspr { array{{3, 5, 7, 0, 0, 0}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(removed), + sprout::get_internal(removed), array{{0, 0, 3, 5, 7, 0, 0, 0, 0, 0}} )); } @@ -96,7 +96,7 @@ namespace testspr { array{{3, 5, 7}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(removed), + sprout::get_internal(removed), array{{0, 0, 3, 5, 7, 0, 0, 0, 0, 0}} )); } diff --git a/testspr/sprout/algorithm/remove_copy_if.hpp b/testspr/sprout/algorithm/remove_copy_if.hpp index bdcec26e..75b72006 100644 --- a/testspr/sprout/algorithm/remove_copy_if.hpp +++ b/testspr/sprout/algorithm/remove_copy_if.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -80,7 +80,7 @@ namespace testspr { array{{0, 0, 0, 0, 0, 0}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(removed), + sprout::get_internal(removed), array{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}} )); } @@ -96,7 +96,7 @@ namespace testspr { array{{0, 0, 0}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(removed), + sprout::get_internal(removed), array{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}} )); } diff --git a/testspr/sprout/algorithm/remove_if.hpp b/testspr/sprout/algorithm/remove_if.hpp index 0a736ac2..a36b3cea 100644 --- a/testspr/sprout/algorithm/remove_if.hpp +++ b/testspr/sprout/algorithm/remove_if.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -46,7 +46,7 @@ namespace testspr { array{{0, 0, 0, 0, 7, 0}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(removed), + sprout::get_internal(removed), array{{1, 0, 0, 0, 0, 0, 7, 0, 9, 0}} )); } @@ -60,7 +60,7 @@ namespace testspr { array{{0, 0, 0}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(removed), + sprout::get_internal(removed), array{{1, 0, 0, 0, 0, 0, 7, 0, 9, 0}} )); } diff --git a/testspr/sprout/algorithm/replace.hpp b/testspr/sprout/algorithm/replace.hpp index 1935b10b..6ab7a544 100644 --- a/testspr/sprout/algorithm/replace.hpp +++ b/testspr/sprout/algorithm/replace.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -49,7 +49,7 @@ namespace testspr { array{{3, -1, 5, -1, 7, -1}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(replaced), + sprout::get_internal(replaced), array{{1, 0, 3, -1, 5, -1, 7, -1, 9, 0}} )); } @@ -64,7 +64,7 @@ namespace testspr { array{{3, -1, 5, -1, 7, -1}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(replaced), + sprout::get_internal(replaced), array{{1, 0, 3, -1, 5, -1, 7, -1, 9, 0}} )); } diff --git a/testspr/sprout/algorithm/replace_copy.hpp b/testspr/sprout/algorithm/replace_copy.hpp index 58f97e87..3791be25 100644 --- a/testspr/sprout/algorithm/replace_copy.hpp +++ b/testspr/sprout/algorithm/replace_copy.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -85,7 +85,7 @@ namespace testspr { array{{3, -1, 5, -1, 7, -1}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(replaced), + sprout::get_internal(replaced), array{{0, 0, 3, -1, 5, -1, 7, -1, 0, 0}} )); } @@ -102,7 +102,7 @@ namespace testspr { array{{3, -1, 5, -1, 7, -1}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(replaced), + sprout::get_internal(replaced), array{{0, 0, 3, -1, 5, -1, 7, -1, 0, 0}} )); } diff --git a/testspr/sprout/algorithm/replace_copy_if.hpp b/testspr/sprout/algorithm/replace_copy_if.hpp index ec7350f3..eecdbcb7 100644 --- a/testspr/sprout/algorithm/replace_copy_if.hpp +++ b/testspr/sprout/algorithm/replace_copy_if.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -85,7 +85,7 @@ namespace testspr { array{{-1, 0, -1, 0, -1, 0}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(replaced), + sprout::get_internal(replaced), array{{0, 0, -1, 0, -1, 0, -1, 0, 0, 0}} )); } @@ -102,7 +102,7 @@ namespace testspr { array{{-1, 0, -1, 0, -1, 0}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(replaced), + sprout::get_internal(replaced), array{{0, 0, -1, 0, -1, 0, -1, 0, 0, 0}} )); } diff --git a/testspr/sprout/algorithm/replace_if.hpp b/testspr/sprout/algorithm/replace_if.hpp index 33685921..5e73a72c 100644 --- a/testspr/sprout/algorithm/replace_if.hpp +++ b/testspr/sprout/algorithm/replace_if.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -49,7 +49,7 @@ namespace testspr { array{{-1, 0, -1, 0, -1, 0}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(replaced), + sprout::get_internal(replaced), array{{1, 0, -1, 0, -1, 0, -1, 0, 9, 0}} )); } @@ -64,7 +64,7 @@ namespace testspr { array{{-1, 0, -1, 0, -1, 0}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(replaced), + sprout::get_internal(replaced), array{{1, 0, -1, 0, -1, 0, -1, 0, 9, 0}} )); } diff --git a/testspr/sprout/algorithm/reverse.hpp b/testspr/sprout/algorithm/reverse.hpp index 549eddbf..64e9fc7d 100644 --- a/testspr/sprout/algorithm/reverse.hpp +++ b/testspr/sprout/algorithm/reverse.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -43,7 +43,7 @@ namespace testspr { array{{8, 7, 6, 5, 4, 3}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(reversed), + sprout::get_internal(reversed), array{{1, 2, 8, 7, 6, 5, 4, 3, 9, 10}} )); } @@ -56,7 +56,7 @@ namespace testspr { array{{8, 7, 6, 5, 4, 3}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(reversed), + sprout::get_internal(reversed), array{{1, 2, 8, 7, 6, 5, 4, 3, 9, 10}} )); } diff --git a/testspr/sprout/algorithm/reverse_copy.hpp b/testspr/sprout/algorithm/reverse_copy.hpp index ea5ff12d..90bb86b5 100644 --- a/testspr/sprout/algorithm/reverse_copy.hpp +++ b/testspr/sprout/algorithm/reverse_copy.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -75,7 +75,7 @@ namespace testspr { array{{8, 7, 6, 5, 4, 3}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(reversed), + sprout::get_internal(reversed), array{{0, 0, 8, 7, 6, 5, 4, 3, 0, 0}} )); } @@ -90,7 +90,7 @@ namespace testspr { array{{8, 7, 6, 5, 4, 3}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(reversed), + sprout::get_internal(reversed), array{{0, 0, 8, 7, 6, 5, 4, 3, 0, 0}} )); } diff --git a/testspr/sprout/algorithm/rotate.hpp b/testspr/sprout/algorithm/rotate.hpp index 7e8f8b0a..9ead5f5d 100644 --- a/testspr/sprout/algorithm/rotate.hpp +++ b/testspr/sprout/algorithm/rotate.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -46,7 +46,7 @@ namespace testspr { array{{6, 7, 8, 3, 4, 5}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(rotated), + sprout::get_internal(rotated), array{{1, 2, 6, 7, 8, 3, 4, 5, 9, 10}} )); } @@ -60,7 +60,7 @@ namespace testspr { array{{6, 7, 8, 3, 4, 5}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(rotated), + sprout::get_internal(rotated), array{{1, 2, 6, 7, 8, 3, 4, 5, 9, 10}} )); } diff --git a/testspr/sprout/algorithm/rotate_copy.hpp b/testspr/sprout/algorithm/rotate_copy.hpp index ef502184..6e1d579c 100644 --- a/testspr/sprout/algorithm/rotate_copy.hpp +++ b/testspr/sprout/algorithm/rotate_copy.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -80,7 +80,7 @@ namespace testspr { array{{6, 7, 8, 3, 4, 5}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(rotated), + sprout::get_internal(rotated), array{{0, 0, 6, 7, 8, 3, 4, 5, 0, 0}} )); } @@ -96,7 +96,7 @@ namespace testspr { array{{6, 7, 8, 3, 4, 5}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(rotated), + sprout::get_internal(rotated), array{{0, 0, 6, 7, 8, 3, 4, 5, 0, 0}} )); } diff --git a/testspr/sprout/algorithm/set_difference.hpp b/testspr/sprout/algorithm/set_difference.hpp index fc4533e6..7cef88ff 100644 --- a/testspr/sprout/algorithm/set_difference.hpp +++ b/testspr/sprout/algorithm/set_difference.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -86,7 +86,7 @@ namespace testspr { array{{5, 15, 25, 0, 0, 0}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{0, 0, 5, 15, 25, 0, 0, 0, 0, 0}} )); } @@ -103,7 +103,7 @@ namespace testspr { array{{5, 15, 25}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{0, 0, 5, 15, 25, 0, 0, 0, 0, 0}} )); } @@ -189,7 +189,7 @@ namespace testspr { array{{5, 15, 25, 0, 0, 0}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{0, 0, 5, 15, 25, 0, 0, 0, 0, 0}} )); } @@ -207,7 +207,7 @@ namespace testspr { array{{5, 15, 25}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{0, 0, 5, 15, 25, 0, 0, 0, 0, 0}} )); } diff --git a/testspr/sprout/algorithm/set_intersection.hpp b/testspr/sprout/algorithm/set_intersection.hpp index 72527700..ddca082c 100644 --- a/testspr/sprout/algorithm/set_intersection.hpp +++ b/testspr/sprout/algorithm/set_intersection.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -86,7 +86,7 @@ namespace testspr { array{{20, 30, 40, 0, 0, 0}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{0, 0, 20, 30, 40, 0, 0, 0, 0, 0}} )); } @@ -103,7 +103,7 @@ namespace testspr { array{{20, 30, 40}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{0, 0, 20, 30, 40, 0, 0, 0, 0, 0}} )); } @@ -189,7 +189,7 @@ namespace testspr { array{{20, 30, 40, 0, 0, 0}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{0, 0, 20, 30, 40, 0, 0, 0, 0, 0}} )); } @@ -207,7 +207,7 @@ namespace testspr { array{{20, 30, 40}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{0, 0, 20, 30, 40, 0, 0, 0, 0, 0}} )); } diff --git a/testspr/sprout/algorithm/set_symmetric_difference.hpp b/testspr/sprout/algorithm/set_symmetric_difference.hpp index eefef3c4..85f34480 100644 --- a/testspr/sprout/algorithm/set_symmetric_difference.hpp +++ b/testspr/sprout/algorithm/set_symmetric_difference.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -86,7 +86,7 @@ namespace testspr { array{{5, 15, 25, 30, 40, 50}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{0, 0, 5, 15, 25, 30, 40, 50, 0, 0}} )); } @@ -103,7 +103,7 @@ namespace testspr { array{{5, 15, 25, 30, 40, 50}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{0, 0, 5, 15, 25, 30, 40, 50, 0, 0}} )); } @@ -189,7 +189,7 @@ namespace testspr { array{{5, 15, 25, 30, 40, 50}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{0, 0, 5, 15, 25, 30, 40, 50, 0, 0}} )); } @@ -207,7 +207,7 @@ namespace testspr { array{{5, 15, 25, 30, 40, 50}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{0, 0, 5, 15, 25, 30, 40, 50, 0, 0}} )); } diff --git a/testspr/sprout/algorithm/set_union.hpp b/testspr/sprout/algorithm/set_union.hpp index bde7ce93..f854e2d7 100644 --- a/testspr/sprout/algorithm/set_union.hpp +++ b/testspr/sprout/algorithm/set_union.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -86,7 +86,7 @@ namespace testspr { array{{5, 10, 15, 20, 25, 30}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{0, 0, 5, 10, 15, 20, 25, 30, 0, 0}} )); } @@ -103,7 +103,7 @@ namespace testspr { array{{5, 10, 15, 20, 25, 30}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{0, 0, 5, 10, 15, 20, 25, 30, 0, 0}} )); } @@ -189,7 +189,7 @@ namespace testspr { array{{5, 10, 15, 20, 25, 30}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{0, 0, 5, 10, 15, 20, 25, 30, 0, 0}} )); } @@ -207,7 +207,7 @@ namespace testspr { array{{5, 10, 15, 20, 25, 30}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(merged), + sprout::get_internal(merged), array{{0, 0, 5, 10, 15, 20, 25, 30, 0, 0}} )); } diff --git a/testspr/sprout/algorithm/shuffle.hpp b/testspr/sprout/algorithm/shuffle.hpp index dca0028f..35723c26 100644 --- a/testspr/sprout/algorithm/shuffle.hpp +++ b/testspr/sprout/algorithm/shuffle.hpp @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -48,7 +48,7 @@ namespace testspr { sprout::sub(arr1, 2, 8) )); TESTSPR_DOUBLE_ASSERT(testspr::is_permutation( - sprout::get_fixed(shuffled), + sprout::get_internal(shuffled), arr1 )); } @@ -62,7 +62,7 @@ namespace testspr { sprout::sub(arr1, 2, 8) )); TESTSPR_DOUBLE_ASSERT(testspr::is_permutation( - sprout::get_fixed(shuffled), + sprout::get_internal(shuffled), arr1 )); } diff --git a/testspr/sprout/algorithm/shuffle_result.hpp b/testspr/sprout/algorithm/shuffle_result.hpp index af03af64..bc4e9ac7 100644 --- a/testspr/sprout/algorithm/shuffle_result.hpp +++ b/testspr/sprout/algorithm/shuffle_result.hpp @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -59,7 +59,7 @@ namespace testspr { sprout::sub(arr1, 2, 8) )); TESTSPR_DOUBLE_ASSERT(testspr::is_permutation( - sprout::get_fixed(sprout::get<0>(shuffled)), + sprout::get_internal(sprout::get<0>(shuffled)), arr1 )); SPROUT_STATIC_CONSTEXPR auto shuffled2 = sprout::shuffle_result( @@ -78,7 +78,7 @@ namespace testspr { sprout::sub(arr1, 2, 8) )); TESTSPR_DOUBLE_ASSERT(testspr::is_permutation( - sprout::get_fixed(sprout::get<0>(shuffled)), + sprout::get_internal(sprout::get<0>(shuffled)), arr1 )); SPROUT_STATIC_CONSTEXPR auto shuffled2 = sprout::shuffle_result( diff --git a/testspr/sprout/algorithm/sort.hpp b/testspr/sprout/algorithm/sort.hpp index afcfd635..9b1c9f4c 100644 --- a/testspr/sprout/algorithm/sort.hpp +++ b/testspr/sprout/algorithm/sort.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -43,7 +43,7 @@ namespace testspr { array{{2, 3, 4, 7, 8, 9}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sorted), + sprout::get_internal(sorted), array{{5, 1, 2, 3, 4, 7, 8, 9, 10, 6}} )); } @@ -56,7 +56,7 @@ namespace testspr { array{{2, 3, 4, 7, 8, 9}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sorted), + sprout::get_internal(sorted), array{{5, 1, 2, 3, 4, 7, 8, 9, 10, 6}} )); } @@ -97,7 +97,7 @@ namespace testspr { array{{2, 3, 4, 7, 8, 9}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sorted), + sprout::get_internal(sorted), array{{5, 1, 2, 3, 4, 7, 8, 9, 10, 6}} )); } @@ -111,7 +111,7 @@ namespace testspr { array{{2, 3, 4, 7, 8, 9}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sorted), + sprout::get_internal(sorted), array{{5, 1, 2, 3, 4, 7, 8, 9, 10, 6}} )); } diff --git a/testspr/sprout/algorithm/sort_heap.hpp b/testspr/sprout/algorithm/sort_heap.hpp index 01b5baaa..2c3264c8 100644 --- a/testspr/sprout/algorithm/sort_heap.hpp +++ b/testspr/sprout/algorithm/sort_heap.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -43,7 +43,7 @@ namespace testspr { array{{2, 3, 5, 6, 7, 8}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sorted), + sprout::get_internal(sorted), array{{10, 9, 2, 3, 5, 6, 7, 8, 4, 1}} )); } @@ -56,7 +56,7 @@ namespace testspr { array{{2, 3, 5, 6, 7, 8}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sorted), + sprout::get_internal(sorted), array{{10, 9, 2, 3, 5, 6, 7, 8, 4, 1}} )); } @@ -97,7 +97,7 @@ namespace testspr { array{{2, 3, 5, 6, 7, 8}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sorted), + sprout::get_internal(sorted), array{{10, 9, 2, 3, 5, 6, 7, 8, 4, 1}} )); } @@ -111,7 +111,7 @@ namespace testspr { array{{2, 3, 5, 6, 7, 8}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sorted), + sprout::get_internal(sorted), array{{10, 9, 2, 3, 5, 6, 7, 8, 4, 1}} )); } diff --git a/testspr/sprout/algorithm/stable_partition.hpp b/testspr/sprout/algorithm/stable_partition.hpp index f0533004..d1e17c53 100644 --- a/testspr/sprout/algorithm/stable_partition.hpp +++ b/testspr/sprout/algorithm/stable_partition.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -46,7 +46,7 @@ namespace testspr { array{{3, 5, 7, 4, 6, 8}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(partitioned), + sprout::get_internal(partitioned), array{{1, 2, 3, 5, 7, 4, 6, 8, 9, 10}} )); } @@ -60,7 +60,7 @@ namespace testspr { array{{3, 5, 7}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(partitioned), + sprout::get_internal(partitioned), array{{1, 2, 3, 5, 7, 4, 6, 8, 9, 10}} )); } diff --git a/testspr/sprout/algorithm/stable_partition_copy.hpp b/testspr/sprout/algorithm/stable_partition_copy.hpp index f7830111..ac3f27dd 100644 --- a/testspr/sprout/algorithm/stable_partition_copy.hpp +++ b/testspr/sprout/algorithm/stable_partition_copy.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -80,7 +80,7 @@ namespace testspr { array{{3, 5, 7, 4, 6, 8}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(partitioned), + sprout::get_internal(partitioned), array{{0, 0, 3, 5, 7, 4, 6, 8, 0, 0}} )); } @@ -96,7 +96,7 @@ namespace testspr { array{{3, 5, 7}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(partitioned), + sprout::get_internal(partitioned), array{{0, 0, 3, 5, 7, 4, 6, 8, 0, 0}} )); } diff --git a/testspr/sprout/algorithm/stable_sort.hpp b/testspr/sprout/algorithm/stable_sort.hpp index 49530fdc..25abb11d 100644 --- a/testspr/sprout/algorithm/stable_sort.hpp +++ b/testspr/sprout/algorithm/stable_sort.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -43,7 +43,7 @@ namespace testspr { array{{2, 3, 4, 7, 8, 9}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sorted), + sprout::get_internal(sorted), array{{5, 1, 2, 3, 4, 7, 8, 9, 10, 6}} )); } @@ -56,7 +56,7 @@ namespace testspr { array{{2, 3, 4, 7, 8, 9}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sorted), + sprout::get_internal(sorted), array{{5, 1, 2, 3, 4, 7, 8, 9, 10, 6}} )); } @@ -97,7 +97,7 @@ namespace testspr { array{{2, 7, 8, 3, 9, 4}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sorted), + sprout::get_internal(sorted), array{{5, 1, 2, 7, 8, 3, 9, 4, 10, 6}} )); } @@ -111,7 +111,7 @@ namespace testspr { array{{2, 7, 8, 3, 9, 4}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(sorted), + sprout::get_internal(sorted), array{{5, 1, 2, 7, 8, 3, 9, 4, 10, 6}} )); } diff --git a/testspr/sprout/algorithm/swap_element.hpp b/testspr/sprout/algorithm/swap_element.hpp index f13be2f1..0e8b9ebf 100644 --- a/testspr/sprout/algorithm/swap_element.hpp +++ b/testspr/sprout/algorithm/swap_element.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -49,7 +49,7 @@ namespace testspr { array{{8, 4, 5, 6, 7, 3}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(swapped), + sprout::get_internal(swapped), array{{1, 2, 8, 4, 5, 6, 7, 3, 9, 10}} )); } @@ -64,7 +64,7 @@ namespace testspr { array{{8, 4, 5, 6, 7, 3}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(swapped), + sprout::get_internal(swapped), array{{1, 2, 8, 4, 5, 6, 7, 3, 9, 10}} )); } diff --git a/testspr/sprout/algorithm/swap_element_copy.hpp b/testspr/sprout/algorithm/swap_element_copy.hpp index 74731e42..7e7066bf 100644 --- a/testspr/sprout/algorithm/swap_element_copy.hpp +++ b/testspr/sprout/algorithm/swap_element_copy.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -85,7 +85,7 @@ namespace testspr { array{{8, 4, 5, 6, 7, 3}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(swapped), + sprout::get_internal(swapped), array{{0, 0, 8, 4, 5, 6, 7, 3, 0, 0}} )); } @@ -102,7 +102,7 @@ namespace testspr { array{{8, 4, 5, 6, 7, 3}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(swapped), + sprout::get_internal(swapped), array{{0, 0, 8, 4, 5, 6, 7, 3, 0, 0}} )); } diff --git a/testspr/sprout/algorithm/transform.hpp b/testspr/sprout/algorithm/transform.hpp index 93b89382..69801bc6 100644 --- a/testspr/sprout/algorithm/transform.hpp +++ b/testspr/sprout/algorithm/transform.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -80,7 +80,7 @@ namespace testspr { array{{6, 8, 10, 12, 14, 16}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(transformed), + sprout::get_internal(transformed), array{{0, 0, 6, 8, 10, 12, 14, 16, 0, 0}} )); } @@ -96,7 +96,7 @@ namespace testspr { array{{6, 8, 10, 12, 14, 16}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(transformed), + sprout::get_internal(transformed), array{{0, 0, 6, 8, 10, 12, 14, 16, 0, 0}} )); } @@ -177,7 +177,7 @@ namespace testspr { array{{6, 8, 10, 12, 14, 16}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(transformed), + sprout::get_internal(transformed), array{{0, 0, 6, 8, 10, 12, 14, 16, 0, 0}} )); } @@ -194,7 +194,7 @@ namespace testspr { array{{6, 8, 10, 12, 14, 16}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(transformed), + sprout::get_internal(transformed), array{{0, 0, 6, 8, 10, 12, 14, 16, 0, 0}} )); } diff --git a/testspr/sprout/algorithm/unique.hpp b/testspr/sprout/algorithm/unique.hpp index ce0eb1b8..721821a9 100644 --- a/testspr/sprout/algorithm/unique.hpp +++ b/testspr/sprout/algorithm/unique.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -43,7 +43,7 @@ namespace testspr { array{{3, 5, 7, 5, 7, 7}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(uniqued), + sprout::get_internal(uniqued), array{{1, 1, 3, 5, 7, 5, 7, 7, 9, 9}} )); } @@ -56,7 +56,7 @@ namespace testspr { array{{3, 5, 7}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(uniqued), + sprout::get_internal(uniqued), array{{1, 1, 3, 5, 7, 5, 7, 7, 9, 9}} )); } @@ -97,7 +97,7 @@ namespace testspr { array{{3, 5, 7, 5, 7, 7}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(uniqued), + sprout::get_internal(uniqued), array{{1, 1, 3, 5, 7, 5, 7, 7, 9, 9}} )); } @@ -111,7 +111,7 @@ namespace testspr { array{{3, 5, 7}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(uniqued), + sprout::get_internal(uniqued), array{{1, 1, 3, 5, 7, 5, 7, 7, 9, 9}} )); } diff --git a/testspr/sprout/algorithm/unique_copy.hpp b/testspr/sprout/algorithm/unique_copy.hpp index b51f058e..4f01e6eb 100644 --- a/testspr/sprout/algorithm/unique_copy.hpp +++ b/testspr/sprout/algorithm/unique_copy.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include namespace testspr { @@ -75,7 +75,7 @@ namespace testspr { array{{3, 5, 7, 0, 0, 0}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(uniqued), + sprout::get_internal(uniqued), array{{0, 0, 3, 5, 7, 0, 0, 0, 0, 0}} )); } @@ -90,7 +90,7 @@ namespace testspr { array{{3, 5, 7}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(uniqued), + sprout::get_internal(uniqued), array{{0, 0, 3, 5, 7, 0, 0, 0, 0, 0}} )); } @@ -165,7 +165,7 @@ namespace testspr { array{{3, 5, 7, 0, 0, 0}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(uniqued), + sprout::get_internal(uniqued), array{{0, 0, 3, 5, 7, 0, 0, 0, 0, 0}} )); } @@ -181,7 +181,7 @@ namespace testspr { array{{3, 5, 7}} )); TESTSPR_DOUBLE_ASSERT(testspr::equal( - sprout::get_fixed(uniqued), + sprout::get_internal(uniqued), array{{0, 0, 3, 5, 7, 0, 0, 0, 0, 0}} )); } diff --git a/testspr/sprout/array.hpp b/testspr/sprout/array.hpp index 81451246..e3f45f30 100644 --- a/testspr/sprout/array.hpp +++ b/testspr/sprout/array.hpp @@ -2,7 +2,7 @@ #define TESTSPR_SPROUT_ARRAY_HPP #include -#include +#include #include namespace testspr { diff --git a/testspr/sprout/string.hpp b/testspr/sprout/string.hpp index bdfd165c..15dd8992 100644 --- a/testspr/sprout/string.hpp +++ b/testspr/sprout/string.hpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include namespace testspr { diff --git a/testspr/tools.hpp b/testspr/tools.hpp index 1b3b6014..4519d75e 100644 --- a/testspr/tools.hpp +++ b/testspr/tools.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #ifdef TESTSPR_CONFIG_ENABLE_STATIC_WARNING # include #endif