12#if defined(__cplusplus)
176#define LIST_FOR_EACH(list, node) for (list_node_t * (node) = (list)->head; (node); (node) = (node)->next)
185#define LIST_FOR_EACH_REVERSE(list, node) for (list_node_t * (node) = (list)->tail; (node); (node) = (node)->prev)
187#if defined(__cplusplus)
void list_pop_back(list_t *list)
void list_insert(list_t *list, size_t index, void *elem)
void list_insert_before(list_t *list, void *elem, void *before)
void list_insert_after(list_t *list, void *elem, void *after)
int list_index_of(const list_t *list, void *elem)
void list_free(list_t *list)
void * list_get(const list_t *list, size_t index)
struct list_node list_node_t
void list_push_front(list_t *list, void *elem)
list_t * list_new(size_t elem_size)
void list_pop_front(list_t *list)
void list_clear(list_t *list)
void list_push_back(list_t *list, void *elem)
void list_remove(list_t *list, void *elem)
size_t list_size(const list_t *list)