diff options
Diffstat (limited to 'src/list')
-rw-r--r-- | src/list/operation/delete.h | 4 | ||||
-rw-r--r-- | src/list/operation/delete_nth.h | 6 | ||||
-rw-r--r-- | src/list/operation/replace_nth.h | 23 |
3 files changed, 28 insertions, 5 deletions
diff --git a/src/list/operation/delete.h b/src/list/operation/delete.h index 48f1137..5ac620a 100644 --- a/src/list/operation/delete.h +++ b/src/list/operation/delete.h @@ -9,11 +9,11 @@ namespace tav { template < typename Element, - typename List + typename Sequence > using Delete = Remove< Apply<IsEqualValue, _0, Element>::template function, - List + Sequence >; } diff --git a/src/list/operation/delete_nth.h b/src/list/operation/delete_nth.h index 18e52bf..a834150 100644 --- a/src/list/operation/delete_nth.h +++ b/src/list/operation/delete_nth.h @@ -9,11 +9,11 @@ namespace tav { template < typename Index, - typename List + typename Sequence > using DeleteNth = Append< - Take<Index, List>, - Drop<Add<Index, Size<1>>, List> + Take<Index, Sequence>, + Drop<Add<Index, Size<1>>, Sequence> >; } diff --git a/src/list/operation/replace_nth.h b/src/list/operation/replace_nth.h new file mode 100644 index 0000000..519a040 --- /dev/null +++ b/src/list/operation/replace_nth.h @@ -0,0 +1,23 @@ +#ifndef TYPEASVALUE_SRC_LIST_OPERATION_REPLACE_NTH_H_ +#define TYPEASVALUE_SRC_LIST_OPERATION_REPLACE_NTH_H_ + +#include "list/operation/concatenate.h" +#include "list/operation/take.h" +#include "list/operation/drop.h" + +namespace tav { + +template < + typename Index, + typename Value, + typename Sequence +> +using ReplaceNth = Concatenate<List< + Take<Index, Sequence>, + List<Value>, + Drop<Add<Index, Size<1>>, Sequence> +>>; + +} + +#endif // TYPEASVALUE_SRC_LIST_OPERATION_REPLACE_NTH_H_ |