// stack: inserts and removes happen at the same end // inslast: stack's action happens at the end called "last", "tail" or "back" // inselem: inserts happen via an element-level operation and removes happen via the api-provided "last"/"tail"/"back" #define BOP_INIT(lst, ui, iters, i) BFX_INSERT_LAST(B_UserItem, lst, ui[i]) #define BOP_INSERT(lst, ui, iters, i) BFX_INSERT_AFTER(B_UserItem, lst, ui[i], iters[i-1]) #define BOP_REMOVE(lst, ui, iters, i) BFX_REMOVE_LAST(B_UserItem, lst)