From f1268ca3bf10ab136bafbd63894ce12353fa8690 Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Tue, 10 Feb 2015 18:40:05 +0100 Subject: Moved `Sort` list index deletion into `DeleteNth` function * as it is commonly required functionality and as such should be provided by this library --- src/list/operation/delete_nth.h | 21 +++++++++++++++++++++ src/list/operation/higher/sort.h | 8 ++------ 2 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 src/list/operation/delete_nth.h (limited to 'src') diff --git a/src/list/operation/delete_nth.h b/src/list/operation/delete_nth.h new file mode 100644 index 0000000..03df12a --- /dev/null +++ b/src/list/operation/delete_nth.h @@ -0,0 +1,21 @@ +#ifndef TYPEASVALUE_SRC_LIST_OPERATION_DELETE_NTH_H_ +#define TYPEASVALUE_SRC_LIST_OPERATION_DELETE_NTH_H_ + +#include "list/operation/append.h" +#include "list/operation/take.h" +#include "list/operation/drop.h" + +namespace tav { + +template < + typename Index, + typename List +> +using DeleteNth = Append< + typename Take::type, + typename Drop>, List>::type +>; + +} + +#endif // TYPEASVALUE_SRC_LIST_OPERATION_DELETE_NTH_H_ diff --git a/src/list/operation/higher/sort.h b/src/list/operation/higher/sort.h index a707a15..f9146d6 100644 --- a/src/list/operation/higher/sort.h +++ b/src/list/operation/higher/sort.h @@ -2,6 +2,7 @@ #define TYPEASVALUE_SRC_LIST_OPERATION_HIGHER_SORT_H_ #include "list/operation/concatenate.h" +#include "list/operation/delete_nth.h" #include "list/operation/higher/partition.h" #include "function/apply.h" @@ -16,14 +17,9 @@ class Sort { using index = Divide::type, Size<2>>; using pivot = typename Nth::type; - using sequence_sans_pivot = typename Append< - typename Take::type, - typename Drop>, Sequence>::type - >::type; - using partitions = typename Partition< Apply::template single_type, - sequence_sans_pivot + typename DeleteNth::type >::type; using lhs = typename Car::type; -- cgit v1.2.3