From c506443ed0d9e4594e8a2125d4bbfdc5843ac1e0 Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Wed, 8 Aug 2018 22:54:56 +0200 Subject: [PATCH] Add comment about ALGO_EXTRACT --- m-algo.h | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/m-algo.h b/m-algo.h index fb36ba81..af4c44cd 100644 --- a/m-algo.h +++ b/m-algo.h @@ -81,23 +81,14 @@ #define ALGO_LET_INIT_VA(dest, contOp, ...) \ ALGO_LET_INIT_VAI(dest, M_GLOBAL_OPLIST(contOp), __VA_ARGS__) - +/* Insert into the container 'contDst' at position 'position' all the values + of container 'contSrc'. + USAGE: + ALGO_INSERT_AT(containerDst, containerDstOPLIST|containerDstType, containerDstIterator, containerSrc, containerSrcOPLIST|containerSrcType) + */ #define ALGO_INSERT_AT(contDst, contDstOp, position, contSrc, contSrcOp) \ ALGOI_INSERT_AT(contDst, M_GLOBAL_OPLIST(contDstOp), position, contSrc, M_GLOBAL_OPLIST(contSrcOp) ) -#define ALGOI_INSERT_AT(contDst, contDstOp, position, contSrc, contSrcOp) do { \ - M_GET_IT_TYPE contSrcOp itSrc; \ - M_GET_IT_TYPE contDstOp itDst; \ - M_GET_IT_SET contDstOp (itDst, position); \ - for (M_GET_IT_FIRST contSrcOp (itSrc, contSrc) ; \ - !M_GET_IT_END_P contSrcOp (itSrc) ; \ - M_GET_IT_NEXT contSrcOp (itSrc) ) { \ - M_GET_IT_INSERT contDstOp (contDst, itDst, \ - *M_GET_IT_CREF contSrcOp (itSrc)); \ - M_GET_IT_NEXT contDstOp (itDst); \ - } \ - } while (0) - /********************************** INTERNAL ************************************/ @@ -852,4 +843,17 @@ cont && (ALGO_INIT_VAI (dest, contOp, __VA_ARGS__), true); \ (M_GET_CLEAR contOp (dest), cont = false)) +#define ALGOI_INSERT_AT(contDst, contDstOp, position, contSrc, contSrcOp) do { \ + M_GET_IT_TYPE contSrcOp itSrc; \ + M_GET_IT_TYPE contDstOp itDst; \ + M_GET_IT_SET contDstOp (itDst, position); \ + for (M_GET_IT_FIRST contSrcOp (itSrc, contSrc) ; \ + !M_GET_IT_END_P contSrcOp (itSrc) ; \ + M_GET_IT_NEXT contSrcOp (itSrc) ) { \ + M_GET_IT_INSERT contDstOp (contDst, itDst, \ + *M_GET_IT_CREF contSrcOp (itSrc)); \ + M_GET_IT_NEXT contDstOp (itDst); \ + } \ + } while (0) + #endif