// queue: inserts and removes happen at opposite ends // insfirst: elements flow from "first," "head" or "front", to "last", "tail" or "back" // remelem: removes happen via an element-level operation and inserts happen via the api-provided "first"/"head"/"front" #define BOP_TEARDOWN(lst, iters, remNo) BFX_REMOVE_LAST(B_UserItem, lst) #define BOP_INSERT(lst, iters, insNo, item) BFX_INSERT_FIRST(B_UserItem, lst, (item)) #define BOP_REMOVE(lst, iters, remNo) BFX_REMOVE_HERE(B_UserItem, lst, iters[(remNo)])