// queue: inserts and removes happen at opposite ends // inslast: elements flow from "last", "tail" or "back", to "first," "head" or "front" // inselem: inserts happen via an element-level operation and removes happen via the api-provided "first"/"tail"/"front" #define BOP_INIT(lst, iters, insNo, item) BFX_INSERT_LAST(B_UserItem, lst, (item)) #define BOP_INSERT(lst, iters, insNo, item) BFX_INSERT_AFTER(B_UserItem, lst, (item), iters[(insNo)-1]) #define BOP_REMOVE(lst, iters, remNo) BFX_REMOVE_FIRST(B_UserItem, lst)