Refactoring

Now using CMC_DEF_FTAB macros
Renamed BODY to PARAMS
This commit is contained in:
Leonardo Vencovsky committed 2020-06-01 20:01:54 -03:00
1 parent 546ac80030
commit 9209e0d5ec
22 files changed
+394 -390

No files matched your search

+7 -7
View File
@@ -56,15 +56,15 @@ static const char *cmc_cmc_string_fmt_bitset = "struct %s "
/**
* Core BitSet implementation
*/
#define CMC_CMC_BITSET_CORE(BODY) \
CMC_CMC_BITSET_CORE_HEADER(BODY) \
CMC_CMC_BITSET_CORE_SOURCE(BODY)
#define CMC_CMC_BITSET_CORE(PARAMS) \
CMC_CMC_BITSET_CORE_HEADER(PARAMS) \
CMC_CMC_BITSET_CORE_SOURCE(PARAMS)
#define CMC_CMC_BITSET_CORE_HEADER(BODY) \
CMC_CMC_BITSET_CORE_HEADER_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY))
#define CMC_CMC_BITSET_CORE_HEADER(PARAMS) \
CMC_CMC_BITSET_CORE_HEADER_(CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS))
#define CMC_CMC_BITSET_CORE_SOURCE(BODY) \
CMC_CMC_BITSET_CORE_SOURCE_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY))
#define CMC_CMC_BITSET_CORE_SOURCE(PARAMS) \
CMC_CMC_BITSET_CORE_SOURCE_(CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS))
/* -------------------------------------------------------------------------
* Header
+9 -9
View File
@@ -43,17 +43,17 @@
/**
* Core Deque implementation
*/
#define CMC_CMC_DEQUE_CORE(BODY) \
CMC_CMC_DEQUE_CORE_HEADER(BODY) \
CMC_CMC_DEQUE_CORE_SOURCE(BODY)
#define CMC_CMC_DEQUE_CORE(PARAMS) \
CMC_CMC_DEQUE_CORE_HEADER(PARAMS) \
CMC_CMC_DEQUE_CORE_SOURCE(PARAMS)
#define CMC_CMC_DEQUE_CORE_HEADER(BODY) \
CMC_CMC_DEQUE_CORE_HEADER_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_CMC_DEQUE_CORE_HEADER(PARAMS) \
CMC_CMC_DEQUE_CORE_HEADER_(CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), \
CMC_PARAM_V(PARAMS))
#define CMC_CMC_DEQUE_CORE_SOURCE(BODY) \
CMC_CMC_DEQUE_CORE_SOURCE_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_CMC_DEQUE_CORE_SOURCE(PARAMS) \
CMC_CMC_DEQUE_CORE_SOURCE_(CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), \
CMC_PARAM_V(PARAMS))
/* -------------------------------------------------------------------------
* Header
+23 -23
View File
@@ -55,19 +55,19 @@ static const char *cmc_cmc_string_fmt_hashbidimap = "struct %s<%s, %s> "
/**
* Core HashBidiMap implementation
*/
#define CMC_CMC_HASHBIDIMAP_CORE(BODY) \
CMC_CMC_HASHBIDIMAP_CORE_HEADER(BODY) \
CMC_CMC_HASHBIDIMAP_CORE_SOURCE(BODY)
#define CMC_CMC_HASHBIDIMAP_CORE(PARAMS) \
CMC_CMC_HASHBIDIMAP_CORE_HEADER(PARAMS) \
CMC_CMC_HASHBIDIMAP_CORE_SOURCE(PARAMS)
#define CMC_CMC_HASHBIDIMAP_CORE_HEADER(BODY) \
CMC_CMC_HASHBIDIMAP_CORE_HEADER_(CMC_PARAM_PFX(BODY), \
CMC_PARAM_SNAME(BODY), CMC_PARAM_K(BODY), \
CMC_PARAM_V(BODY))
#define CMC_CMC_HASHBIDIMAP_CORE_HEADER(PARAMS) \
CMC_CMC_HASHBIDIMAP_CORE_HEADER_(CMC_PARAM_PFX(PARAMS), \
CMC_PARAM_SNAME(PARAMS), \
CMC_PARAM_K(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_CMC_HASHBIDIMAP_CORE_SOURCE(BODY) \
CMC_CMC_HASHBIDIMAP_CORE_SOURCE_(CMC_PARAM_PFX(BODY), \
CMC_PARAM_SNAME(BODY), CMC_PARAM_K(BODY), \
CMC_PARAM_V(BODY))
#define CMC_CMC_HASHBIDIMAP_CORE_SOURCE(PARAMS) \
CMC_CMC_HASHBIDIMAP_CORE_SOURCE_(CMC_PARAM_PFX(PARAMS), \
CMC_PARAM_SNAME(PARAMS), \
CMC_PARAM_K(PARAMS), CMC_PARAM_V(PARAMS))
/* -------------------------------------------------------------------------
* Header
@@ -138,44 +138,44 @@ static const char *cmc_cmc_string_fmt_hashbidimap = "struct %s<%s, %s> "
struct CMC_DEF_FKEY(SNAME) \
{ \
/* Comparator function */ \
int (*cmp)(K, K); \
CMC_DEF_FTAB_CMP(K); \
\
/* Copy function */ \
K (*cpy)(K); \
CMC_DEF_FTAB_CPY(K); \
\
/* To string function */ \
bool (*str)(FILE *, K); \
CMC_DEF_FTAB_STR(K); \
\
/* Free from memory function */ \
void (*free)(K); \
CMC_DEF_FTAB_FREE(K); \
\
/* Hash function */ \
size_t (*hash)(K); \
CMC_DEF_FTAB_HASH(K); \
\
/* Priority function */ \
int (*pri)(K, K); \
CMC_DEF_FTAB_PRI(K); \
}; \
\
/* Value struct function table */ \
struct CMC_DEF_FVAL(SNAME) \
{ \
/* Comparator function */ \
int (*cmp)(V, V); \
CMC_DEF_FTAB_CMP(V); \
\
/* Copy function */ \
V (*cpy)(V); \
CMC_DEF_FTAB_CPY(V); \
\
/* To string function */ \
bool (*str)(FILE *, V); \
CMC_DEF_FTAB_STR(V); \
\
/* Free from memory function */ \
void (*free)(V); \
CMC_DEF_FTAB_FREE(V); \
\
/* Hash function */ \
size_t (*hash)(V); \
CMC_DEF_FTAB_HASH(V); \
\
/* Priority function */ \
int (*pri)(V, V); \
CMC_DEF_FTAB_PRI(V); \
}; \
\
/* HashBidiMap Iterator */ \
+23 -21
View File
@@ -32,17 +32,19 @@
/**
* Core HashMap implementation
*/
#define CMC_CMC_HASHMAP_CORE(BODY) \
CMC_CMC_HASHMAP_CORE_HEADER(BODY) \
CMC_CMC_HASHMAP_CORE_SOURCE(BODY)
#define CMC_CMC_HASHMAP_CORE(PARAMS) \
CMC_CMC_HASHMAP_CORE_HEADER(PARAMS) \
CMC_CMC_HASHMAP_CORE_SOURCE(PARAMS)
#define CMC_CMC_HASHMAP_CORE_HEADER(BODY) \
CMC_CMC_HASHMAP_CORE_HEADER_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_K(BODY), CMC_PARAM_V(BODY))
#define CMC_CMC_HASHMAP_CORE_HEADER(PARAMS) \
CMC_CMC_HASHMAP_CORE_HEADER_(CMC_PARAM_PFX(PARAMS), \
CMC_PARAM_SNAME(PARAMS), CMC_PARAM_K(PARAMS), \
CMC_PARAM_V(PARAMS))
#define CMC_CMC_HASHMAP_CORE_SOURCE(BODY) \
CMC_CMC_HASHMAP_CORE_SOURCE_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_K(BODY), CMC_PARAM_V(BODY))
#define CMC_CMC_HASHMAP_CORE_SOURCE(PARAMS) \
CMC_CMC_HASHMAP_CORE_SOURCE_(CMC_PARAM_PFX(PARAMS), \
CMC_PARAM_SNAME(PARAMS), CMC_PARAM_K(PARAMS), \
CMC_PARAM_V(PARAMS))
/* -------------------------------------------------------------------------
* Header
@@ -101,44 +103,44 @@
struct CMC_DEF_FKEY(SNAME) \
{ \
/* Comparator function */ \
int (*cmp)(K, K); \
CMC_DEF_FTAB_CMP(K); \
\
/* Copy function */ \
K (*cpy)(K); \
CMC_DEF_FTAB_CPY(K); \
\
/* To string function */ \
bool (*str)(FILE *, K); \
CMC_DEF_FTAB_STR(K); \
\
/* Free from memory function */ \
void (*free)(K); \
CMC_DEF_FTAB_FREE(K); \
\
/* Hash function */ \
size_t (*hash)(K); \
CMC_DEF_FTAB_HASH(K); \
\
/* Priority function */ \
int (*pri)(K, K); \
CMC_DEF_FTAB_PRI(K); \
}; \
\
/* Value struct function table */ \
struct CMC_DEF_FVAL(SNAME) \
{ \
/* Comparator function */ \
int (*cmp)(V, V); \
CMC_DEF_FTAB_CMP(V); \
\
/* Copy function */ \
V (*cpy)(V); \
CMC_DEF_FTAB_CPY(V); \
\
/* To string function */ \
bool (*str)(FILE *, V); \
CMC_DEF_FTAB_STR(V); \
\
/* Free from memory function */ \
void (*free)(V); \
CMC_DEF_FTAB_FREE(V); \
\
/* Hash function */ \
size_t (*hash)(V); \
CMC_DEF_FTAB_HASH(V); \
\
/* Priority function */ \
int (*pri)(V, V); \
CMC_DEF_FTAB_PRI(V); \
}; \
\
/* Collection Functions */ \
+23 -23
View File
@@ -57,19 +57,19 @@
/**
* Core HashMultiMap implementation
*/
#define CMC_CMC_HASHMULTIMAP_CORE(BODY) \
CMC_CMC_HASHMULTIMAP_CORE_HEADER(BODY) \
CMC_CMC_HASHMULTIMAP_CORE_SOURCE(BODY)
#define CMC_CMC_HASHMULTIMAP_CORE(PARAMS) \
CMC_CMC_HASHMULTIMAP_CORE_HEADER(PARAMS) \
CMC_CMC_HASHMULTIMAP_CORE_SOURCE(PARAMS)
#define CMC_CMC_HASHMULTIMAP_CORE_HEADER(BODY) \
CMC_CMC_HASHMULTIMAP_CORE_HEADER_(CMC_PARAM_PFX(BODY), \
CMC_PARAM_SNAME(BODY), \
CMC_PARAM_K(BODY), CMC_PARAM_V(BODY))
#define CMC_CMC_HASHMULTIMAP_CORE_HEADER(PARAMS) \
CMC_CMC_HASHMULTIMAP_CORE_HEADER_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_K(PARAMS), \
CMC_PARAM_V(PARAMS))
#define CMC_CMC_HASHMULTIMAP_CORE_SOURCE(BODY) \
CMC_CMC_HASHMULTIMAP_CORE_SOURCE_(CMC_PARAM_PFX(BODY), \
CMC_PARAM_SNAME(BODY), \
CMC_PARAM_K(BODY), CMC_PARAM_V(BODY))
#define CMC_CMC_HASHMULTIMAP_CORE_SOURCE(PARAMS) \
CMC_CMC_HASHMULTIMAP_CORE_SOURCE_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_K(PARAMS), \
CMC_PARAM_V(PARAMS))
/* -------------------------------------------------------------------------
* Header
@@ -127,44 +127,44 @@
struct CMC_DEF_FKEY(SNAME) \
{ \
/* Comparator function */ \
int (*cmp)(K, K); \
CMC_DEF_FTAB_CMP(K); \
\
/* Copy function */ \
K (*cpy)(K); \
CMC_DEF_FTAB_CPY(K); \
\
/* To string function */ \
bool (*str)(FILE *, K); \
CMC_DEF_FTAB_STR(K); \
\
/* Free from memory function */ \
void (*free)(K); \
CMC_DEF_FTAB_FREE(K); \
\
/* Hash function */ \
size_t (*hash)(K); \
CMC_DEF_FTAB_HASH(K); \
\
/* Priority function */ \
int (*pri)(K, K); \
CMC_DEF_FTAB_PRI(K); \
}; \
\
/* Value struct function table */ \
struct CMC_DEF_FVAL(SNAME) \
{ \
/* Comparator function */ \
int (*cmp)(V, V); \
CMC_DEF_FTAB_CMP(V); \
\
/* Copy function */ \
V (*cpy)(V); \
CMC_DEF_FTAB_CPY(V); \
\
/* To string function */ \
bool (*str)(FILE *, V); \
CMC_DEF_FTAB_STR(V); \
\
/* Free from memory function */ \
void (*free)(V); \
CMC_DEF_FTAB_FREE(V); \
\
/* Hash function */ \
size_t (*hash)(V); \
CMC_DEF_FTAB_HASH(V); \
\
/* Priority function */ \
int (*pri)(V, V); \
CMC_DEF_FTAB_PRI(V); \
}; \
\
/* Collection Functions */ \
+15 -15
View File
@@ -39,17 +39,17 @@
/**
* Core HashMultiSet implementation
*/
#define CMC_CMC_HASHMULTISET_CORE(BODY) \
CMC_CMC_HASHMULTISET_CORE_HEADER(BODY) \
CMC_CMC_HASHMULTISET_CORE_SOURCE(BODY)
#define CMC_CMC_HASHMULTISET_CORE(PARAMS) \
CMC_CMC_HASHMULTISET_CORE_HEADER(PARAMS) \
CMC_CMC_HASHMULTISET_CORE_SOURCE(PARAMS)
#define CMC_CMC_HASHMULTISET_CORE_HEADER(BODY) \
CMC_CMC_HASHMULTISET_CORE_HEADER_( \
CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), CMC_PARAM_V(BODY))
#define CMC_CMC_HASHMULTISET_CORE_HEADER(PARAMS) \
CMC_CMC_HASHMULTISET_CORE_HEADER_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_CMC_HASHMULTISET_CORE_SOURCE(BODY) \
CMC_CMC_HASHMULTISET_CORE_SOURCE_( \
CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), CMC_PARAM_V(BODY))
#define CMC_CMC_HASHMULTISET_CORE_SOURCE(PARAMS) \
CMC_CMC_HASHMULTISET_CORE_SOURCE_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
/* -------------------------------------------------------------------------
* Header
@@ -107,22 +107,22 @@
struct CMC_DEF_FVAL(SNAME) \
{ \
/* Comparator function */ \
int (*cmp)(V, V); \
CMC_DEF_FTAB_CMP(V); \
\
/* Copy function */ \
V (*cpy)(V); \
CMC_DEF_FTAB_CPY(V); \
\
/* To string function */ \
bool (*str)(FILE *, V); \
CMC_DEF_FTAB_STR(V); \
\
/* Free from memory function */ \
void (*free)(V); \
CMC_DEF_FTAB_FREE(V); \
\
/* Hash function */ \
size_t (*hash)(V); \
CMC_DEF_FTAB_HASH(V); \
\
/* Priority function */ \
int (*pri)(V, V); \
CMC_DEF_FTAB_PRI(V); \
}; \
\
/* Collection Functions */ \
+15 -15
View File
@@ -32,17 +32,17 @@
/**
* Core HashSet implementation
*/
#define CMC_CMC_HASHSET_CORE(BODY) \
CMC_CMC_HASHSET_CORE_HEADER(BODY) \
CMC_CMC_HASHSET_CORE_SOURCE(BODY)
#define CMC_CMC_HASHSET_CORE(PARAMS) \
CMC_CMC_HASHSET_CORE_HEADER(PARAMS) \
CMC_CMC_HASHSET_CORE_SOURCE(PARAMS)
#define CMC_CMC_HASHSET_CORE_HEADER(BODY) \
CMC_CMC_HASHSET_CORE_HEADER_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_CMC_HASHSET_CORE_HEADER(PARAMS) \
CMC_CMC_HASHSET_CORE_HEADER_(CMC_PARAM_PFX(PARAMS), \
CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_CMC_HASHSET_CORE_SOURCE(BODY) \
CMC_CMC_HASHSET_CORE_SOURCE_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_CMC_HASHSET_CORE_SOURCE(PARAMS) \
CMC_CMC_HASHSET_CORE_SOURCE_(CMC_PARAM_PFX(PARAMS), \
CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
/* -------------------------------------------------------------------------
* Header
@@ -94,22 +94,22 @@
struct CMC_DEF_FVAL(SNAME) \
{ \
/* Comparator function */ \
int (*cmp)(V, V); \
CMC_DEF_FTAB_CMP(V); \
\
/* Copy function */ \
V (*cpy)(V); \
CMC_DEF_FTAB_CPY(V); \
\
/* To string function */ \
bool (*str)(FILE *, V); \
CMC_DEF_FTAB_STR(V); \
\
/* Free from memory function */ \
void (*free)(V); \
CMC_DEF_FTAB_FREE(V); \
\
/* Hash function */ \
size_t (*hash)(V); \
CMC_DEF_FTAB_HASH(V); \
\
/* Priority function */ \
int (*pri)(V, V); \
CMC_DEF_FTAB_PRI(V); \
}; \
\
/* Collection Functions */ \
+15 -15
View File
@@ -43,17 +43,17 @@
/**
* Core Heap implementation
*/
#define CMC_CMC_HEAP_CORE(BODY) \
CMC_CMC_HEAP_CORE_HEADER(BODY) \
CMC_CMC_HEAP_CORE_SOURCE(BODY)
#define CMC_CMC_HEAP_CORE(PARAMS) \
CMC_CMC_HEAP_CORE_HEADER(PARAMS) \
CMC_CMC_HEAP_CORE_SOURCE(PARAMS)
#define CMC_CMC_HEAP_CORE_HEADER(BODY) \
CMC_CMC_HEAP_CORE_HEADER_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_CMC_HEAP_CORE_HEADER(PARAMS) \
CMC_CMC_HEAP_CORE_HEADER_(CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), \
CMC_PARAM_V(PARAMS))
#define CMC_CMC_HEAP_CORE_SOURCE(BODY) \
CMC_CMC_HEAP_CORE_SOURCE_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_CMC_HEAP_CORE_SOURCE(PARAMS) \
CMC_CMC_HEAP_CORE_SOURCE_(CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), \
CMC_PARAM_V(PARAMS))
/* -------------------------------------------------------------------------
* Header
@@ -92,22 +92,22 @@
struct CMC_DEF_FVAL(SNAME) \
{ \
/* Comparator function */ \
int (*cmp)(V, V); \
CMC_DEF_FTAB_CMP(V); \
\
/* Copy function */ \
V (*cpy)(V); \
CMC_DEF_FTAB_CPY(V); \
\
/* To string function */ \
bool (*str)(FILE *, V); \
CMC_DEF_FTAB_STR(V); \
\
/* Free from memory function */ \
void (*free)(V); \
CMC_DEF_FTAB_FREE(V); \
\
/* Hash function */ \
size_t (*hash)(V); \
CMC_DEF_FTAB_HASH(V); \
\
/* Priority function */ \
int (*pri)(V, V); \
CMC_DEF_FTAB_PRI(V); \
}; \
\
/* Collection Functions */ \
+15 -15
View File
@@ -44,17 +44,17 @@ static const char *cmc_cmc_string_fmt_intervalheap = "struct %s<%s> "
/**
* Core IntervalHeap implementation
*/
#define CMC_CMC_INTERVALHEAP_CORE(BODY) \
CMC_CMC_INTERVALHEAP_CORE_HEADER(BODY) \
CMC_CMC_INTERVALHEAP_CORE_SOURCE(BODY)
#define CMC_CMC_INTERVALHEAP_CORE(PARAMS) \
CMC_CMC_INTERVALHEAP_CORE_HEADER(PARAMS) \
CMC_CMC_INTERVALHEAP_CORE_SOURCE(PARAMS)
#define CMC_CMC_INTERVALHEAP_CORE_HEADER(BODY) \
CMC_CMC_INTERVALHEAP_CORE_HEADER_( \
CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), CMC_PARAM_V(BODY))
#define CMC_CMC_INTERVALHEAP_CORE_HEADER(PARAMS) \
CMC_CMC_INTERVALHEAP_CORE_HEADER_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_CMC_INTERVALHEAP_CORE_SOURCE(BODY) \
CMC_CMC_INTERVALHEAP_CORE_SOURCE_( \
CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), CMC_PARAM_V(BODY))
#define CMC_CMC_INTERVALHEAP_CORE_SOURCE(PARAMS) \
CMC_CMC_INTERVALHEAP_CORE_SOURCE_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
/* -------------------------------------------------------------------------
* Header
@@ -94,22 +94,22 @@ static const char *cmc_cmc_string_fmt_intervalheap = "struct %s<%s> "
struct CMC_DEF_FVAL(SNAME) \
{ \
/* Comparator function */ \
int (*cmp)(V, V); \
CMC_DEF_FTAB_CMP(V); \
\
/* Copy function */ \
V (*cpy)(V); \
CMC_DEF_FTAB_CPY(V); \
\
/* To string function */ \
bool (*str)(FILE *, V); \
CMC_DEF_FTAB_STR(V); \
\
/* Free from memory function */ \
void (*free)(V); \
CMC_DEF_FTAB_FREE(V); \
\
/* Hash function */ \
size_t (*hash)(V); \
CMC_DEF_FTAB_HASH(V); \
\
/* Priority function */ \
int (*pri)(V, V); \
CMC_DEF_FTAB_PRI(V); \
}; \
\
/* Heap Iterator */ \
+15 -15
View File
@@ -50,17 +50,17 @@ static const char *cmc_cmc_string_fmt_linkedlist = "struct %s<%s> "
/**
* Core LinkedList implementation
*/
#define CMC_CMC_LINKEDLIST_CORE(BODY) \
CMC_CMC_LINKEDLIST_CORE_HEADER(BODY) \
CMC_CMC_LINKEDLIST_CORE_SOURCE(BODY)
#define CMC_CMC_LINKEDLIST_CORE(PARAMS) \
CMC_CMC_LINKEDLIST_CORE_HEADER(PARAMS) \
CMC_CMC_LINKEDLIST_CORE_SOURCE(PARAMS)
#define CMC_CMC_LINKEDLIST_CORE_HEADER(BODY) \
CMC_CMC_LINKEDLIST_CORE_HEADER_(CMC_PARAM_PFX(BODY), \
CMC_PARAM_SNAME(BODY), CMC_PARAM_V(BODY))
#define CMC_CMC_LINKEDLIST_CORE_HEADER(PARAMS) \
CMC_CMC_LINKEDLIST_CORE_HEADER_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_CMC_LINKEDLIST_CORE_SOURCE(BODY) \
CMC_CMC_LINKEDLIST_CORE_SOURCE_(CMC_PARAM_PFX(BODY), \
CMC_PARAM_SNAME(BODY), CMC_PARAM_V(BODY))
#define CMC_CMC_LINKEDLIST_CORE_SOURCE(PARAMS) \
CMC_CMC_LINKEDLIST_CORE_SOURCE_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
/* -------------------------------------------------------------------------
* Header
@@ -109,22 +109,22 @@ static const char *cmc_cmc_string_fmt_linkedlist = "struct %s<%s> "
struct CMC_DEF_FVAL(SNAME) \
{ \
/* Comparator function */ \
int (*cmp)(V, V); \
CMC_DEF_FTAB_CMP(V); \
\
/* Copy function */ \
V (*cpy)(V); \
CMC_DEF_FTAB_CPY(V); \
\
/* To string function */ \
bool (*str)(FILE *, V); \
CMC_DEF_FTAB_STR(V); \
\
/* Free from memory function */ \
void (*free)(V); \
CMC_DEF_FTAB_FREE(V); \
\
/* Hash function */ \
size_t (*hash)(V); \
CMC_DEF_FTAB_HASH(V); \
\
/* Priority function */ \
int (*pri)(V, V); \
CMC_DEF_FTAB_PRI(V); \
}; \
\
/* Linked List Iterator */ \
+15 -15
View File
@@ -65,17 +65,17 @@ static const char *cmc_cmc_string_fmt_list = "struct %s<%s> "
/**
* Core List implementation
*/
#define CMC_CMC_LIST_CORE(BODY) \
CMC_CMC_LIST_CORE_HEADER(BODY) \
CMC_CMC_LIST_CORE_SOURCE(BODY)
#define CMC_CMC_LIST_CORE(PARAMS) \
CMC_CMC_LIST_CORE_HEADER(PARAMS) \
CMC_CMC_LIST_CORE_SOURCE(PARAMS)
#define CMC_CMC_LIST_CORE_HEADER(BODY) \
CMC_CMC_LIST_CORE_HEADER_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_CMC_LIST_CORE_HEADER(PARAMS) \
CMC_CMC_LIST_CORE_HEADER_(CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), \
CMC_PARAM_V(PARAMS))
#define CMC_CMC_LIST_CORE_SOURCE(BODY) \
CMC_CMC_LIST_CORE_SOURCE_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_CMC_LIST_CORE_SOURCE(PARAMS) \
CMC_CMC_LIST_CORE_SOURCE_(CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), \
CMC_PARAM_V(PARAMS))
/* -------------------------------------------------------------------------
* Header
@@ -111,22 +111,22 @@ static const char *cmc_cmc_string_fmt_list = "struct %s<%s> "
struct CMC_DEF_FVAL(SNAME) \
{ \
/* Comparator function */ \
int (*cmp)(V, V); \
CMC_DEF_FTAB_CMP(V); \
\
/* Copy function */ \
V (*cpy)(V); \
CMC_DEF_FTAB_CPY(V); \
\
/* To string function */ \
bool (*str)(FILE *, V); \
CMC_DEF_FTAB_STR(V); \
\
/* Free from memory function */ \
void (*free)(V); \
CMC_DEF_FTAB_FREE(V); \
\
/* Hash function */ \
size_t (*hash)(V); \
CMC_DEF_FTAB_HASH(V); \
\
/* Priority function */ \
int (*pri)(V, V); \
CMC_DEF_FTAB_PRI(V); \
}; \
\
/* List Iterator */ \
+15 -15
View File
@@ -67,17 +67,17 @@ static const char *cmc_cmc_string_fmt_queue = "struct %s<%s> "
/**
* Core Queue implementation
*/
#define CMC_CMC_QUEUE_CORE(BODY) \
CMC_CMC_QUEUE_CORE_HEADER(BODY) \
CMC_CMC_QUEUE_CORE_SOURCE(BODY)
#define CMC_CMC_QUEUE_CORE(PARAMS) \
CMC_CMC_QUEUE_CORE_HEADER(PARAMS) \
CMC_CMC_QUEUE_CORE_SOURCE(PARAMS)
#define CMC_CMC_QUEUE_CORE_HEADER(BODY) \
CMC_CMC_QUEUE_CORE_HEADER_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_CMC_QUEUE_CORE_HEADER(PARAMS) \
CMC_CMC_QUEUE_CORE_HEADER_(CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), \
CMC_PARAM_V(PARAMS))
#define CMC_CMC_QUEUE_CORE_SOURCE(BODY) \
CMC_CMC_QUEUE_CORE_SOURCE_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_CMC_QUEUE_CORE_SOURCE(PARAMS) \
CMC_CMC_QUEUE_CORE_SOURCE_(CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), \
CMC_PARAM_V(PARAMS))
/* -------------------------------------------------------------------------
* Header
@@ -119,22 +119,22 @@ static const char *cmc_cmc_string_fmt_queue = "struct %s<%s> "
struct CMC_DEF_FVAL(SNAME) \
{ \
/* Comparator function */ \
int (*cmp)(V, V); \
CMC_DEF_FTAB_CMP(V); \
\
/* Copy function */ \
V (*cpy)(V); \
CMC_DEF_FTAB_CPY(V); \
\
/* To string function */ \
bool (*str)(FILE *, V); \
CMC_DEF_FTAB_STR(V); \
\
/* Free from memory function */ \
void (*free)(V); \
CMC_DEF_FTAB_FREE(V); \
\
/* Hash function */ \
size_t (*hash)(V); \
CMC_DEF_FTAB_HASH(V); \
\
/* Priority function */ \
int (*pri)(V, V); \
CMC_DEF_FTAB_PRI(V); \
}; \
\
/* Queue Iterator */ \
+15 -15
View File
@@ -45,17 +45,17 @@ static const char *cmc_cmc_string_fmt_sortedlist = "struct %s<%s> "
/**
* Core SortedList implementation
*/
#define CMC_CMC_SORTEDLIST_CORE(BODY) \
CMC_CMC_SORTEDLIST_CORE_HEADER(BODY) \
CMC_CMC_SORTEDLIST_CORE_SOURCE(BODY)
#define CMC_CMC_SORTEDLIST_CORE(PARAMS) \
CMC_CMC_SORTEDLIST_CORE_HEADER(PARAMS) \
CMC_CMC_SORTEDLIST_CORE_SOURCE(PARAMS)
#define CMC_CMC_SORTEDLIST_CORE_HEADER(BODY) \
CMC_CMC_SORTEDLIST_CORE_HEADER_(CMC_PARAM_PFX(BODY), \
CMC_PARAM_SNAME(BODY), CMC_PARAM_V(BODY))
#define CMC_CMC_SORTEDLIST_CORE_HEADER(PARAMS) \
CMC_CMC_SORTEDLIST_CORE_HEADER_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_CMC_SORTEDLIST_CORE_SOURCE(BODY) \
CMC_CMC_SORTEDLIST_CORE_SOURCE_(CMC_PARAM_PFX(BODY), \
CMC_PARAM_SNAME(BODY), CMC_PARAM_V(BODY))
#define CMC_CMC_SORTEDLIST_CORE_SOURCE(PARAMS) \
CMC_CMC_SORTEDLIST_CORE_SOURCE_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
/* -------------------------------------------------------------------------
* Header
@@ -94,22 +94,22 @@ static const char *cmc_cmc_string_fmt_sortedlist = "struct %s<%s> "
struct CMC_DEF_FVAL(SNAME) \
{ \
/* Comparator function */ \
int (*cmp)(V, V); \
CMC_DEF_FTAB_CMP(V); \
\
/* Copy function */ \
V (*cpy)(V); \
CMC_DEF_FTAB_CPY(V); \
\
/* To string function */ \
bool (*str)(FILE *, V); \
CMC_DEF_FTAB_STR(V); \
\
/* Free from memory function */ \
void (*free)(V); \
CMC_DEF_FTAB_FREE(V); \
\
/* Hash function */ \
size_t (*hash)(V); \
CMC_DEF_FTAB_HASH(V); \
\
/* Priority function */ \
int (*pri)(V, V); \
CMC_DEF_FTAB_PRI(V); \
}; \
\
/* List Iterator */ \
+15 -15
View File
@@ -50,17 +50,17 @@ static const char *cmc_cmc_string_fmt_stack = "struct %s<%s> "
/**
* Core Stack implementation
*/
#define CMC_CMC_STACK_CORE(BODY) \
CMC_CMC_STACK_CORE_HEADER(BODY) \
CMC_CMC_STACK_CORE_SOURCE(BODY)
#define CMC_CMC_STACK_CORE(PARAMS) \
CMC_CMC_STACK_CORE_HEADER(PARAMS) \
CMC_CMC_STACK_CORE_SOURCE(PARAMS)
#define CMC_CMC_STACK_CORE_HEADER(BODY) \
CMC_CMC_STACK_CORE_HEADER_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_CMC_STACK_CORE_HEADER(PARAMS) \
CMC_CMC_STACK_CORE_HEADER_(CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), \
CMC_PARAM_V(PARAMS))
#define CMC_CMC_STACK_CORE_SOURCE(BODY) \
CMC_CMC_STACK_CORE_SOURCE_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_CMC_STACK_CORE_SOURCE(PARAMS) \
CMC_CMC_STACK_CORE_SOURCE_(CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), \
CMC_PARAM_V(PARAMS))
/* -------------------------------------------------------------------------
* Header
@@ -96,22 +96,22 @@ static const char *cmc_cmc_string_fmt_stack = "struct %s<%s> "
struct CMC_DEF_FVAL(SNAME) \
{ \
/* Comparator function */ \
int (*cmp)(V, V); \
CMC_DEF_FTAB_CMP(V); \
\
/* Copy function */ \
V (*cpy)(V); \
CMC_DEF_FTAB_CPY(V); \
\
/* To string function */ \
bool (*str)(FILE *, V); \
CMC_DEF_FTAB_STR(V); \
\
/* Free from memory function */ \
void (*free)(V); \
CMC_DEF_FTAB_FREE(V); \
\
/* Hash function */ \
size_t (*hash)(V); \
CMC_DEF_FTAB_HASH(V); \
\
/* Priority function */ \
int (*pri)(V, V); \
CMC_DEF_FTAB_PRI(V); \
}; \
\
/* Stack Iterator */ \
+23 -21
View File
@@ -41,17 +41,19 @@ static const char *cmc_cmc_string_fmt_treemap = "struct %s<%s, %s> "
/**
* Core TreeMap implementation
*/
#define CMC_CMC_TREEMAP_CORE(BODY) \
CMC_CMC_TREEMAP_CORE_HEADER(BODY) \
CMC_CMC_TREEMAP_CORE_SOURCE(BODY)
#define CMC_CMC_TREEMAP_CORE(PARAMS) \
CMC_CMC_TREEMAP_CORE_HEADER(PARAMS) \
CMC_CMC_TREEMAP_CORE_SOURCE(PARAMS)
#define CMC_CMC_TREEMAP_CORE_HEADER(BODY) \
CMC_CMC_TREEMAP_CORE_HEADER_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_K(BODY), CMC_PARAM_V(BODY))
#define CMC_CMC_TREEMAP_CORE_HEADER(PARAMS) \
CMC_CMC_TREEMAP_CORE_HEADER_(CMC_PARAM_PFX(PARAMS), \
CMC_PARAM_SNAME(PARAMS), CMC_PARAM_K(PARAMS), \
CMC_PARAM_V(PARAMS))
#define CMC_CMC_TREEMAP_CORE_SOURCE(BODY) \
CMC_CMC_TREEMAP_CORE_SOURCE_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_K(BODY), CMC_PARAM_V(BODY))
#define CMC_CMC_TREEMAP_CORE_SOURCE(PARAMS) \
CMC_CMC_TREEMAP_CORE_SOURCE_(CMC_PARAM_PFX(PARAMS), \
CMC_PARAM_SNAME(PARAMS), CMC_PARAM_K(PARAMS), \
CMC_PARAM_V(PARAMS))
/* -------------------------------------------------------------------------
* Header
@@ -109,44 +111,44 @@ static const char *cmc_cmc_string_fmt_treemap = "struct %s<%s, %s> "
struct CMC_DEF_FKEY(SNAME) \
{ \
/* Comparator function */ \
int (*cmp)(K, K); \
CMC_DEF_FTAB_CMP(K); \
\
/* Copy function */ \
K (*cpy)(K); \
CMC_DEF_FTAB_CPY(K); \
\
/* To string function */ \
bool (*str)(FILE *, K); \
CMC_DEF_FTAB_STR(K); \
\
/* Free from memory function */ \
void (*free)(K); \
CMC_DEF_FTAB_FREE(K); \
\
/* Hash function */ \
size_t (*hash)(K); \
CMC_DEF_FTAB_HASH(K); \
\
/* Priority function */ \
int (*pri)(K, K); \
CMC_DEF_FTAB_PRI(K); \
}; \
\
/* Value struct function table */ \
struct CMC_DEF_FVAL(SNAME) \
{ \
/* Comparator function */ \
int (*cmp)(V, V); \
CMC_DEF_FTAB_CMP(V); \
\
/* Copy function */ \
V (*cpy)(V); \
CMC_DEF_FTAB_CPY(V); \
\
/* To string function */ \
bool (*str)(FILE *, V); \
CMC_DEF_FTAB_STR(V); \
\
/* Free from memory function */ \
void (*free)(V); \
CMC_DEF_FTAB_FREE(V); \
\
/* Hash function */ \
size_t (*hash)(V); \
CMC_DEF_FTAB_HASH(V); \
\
/* Priority function */ \
int (*pri)(V, V); \
CMC_DEF_FTAB_PRI(V); \
}; \
\
/* Treemap Iterator */ \
+15 -15
View File
@@ -40,17 +40,17 @@ static const char *cmc_cmc_string_fmt_treeset = "struct %s<%s> "
/**
* Core TreeSet implementation
*/
#define CMC_CMC_TREESET_CORE(BODY) \
CMC_CMC_TREESET_CORE_HEADER(BODY) \
CMC_CMC_TREESET_CORE_SOURCE(BODY)
#define CMC_CMC_TREESET_CORE(PARAMS) \
CMC_CMC_TREESET_CORE_HEADER(PARAMS) \
CMC_CMC_TREESET_CORE_SOURCE(PARAMS)
#define CMC_CMC_TREESET_CORE_HEADER(BODY) \
CMC_CMC_TREESET_CORE_HEADER_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_CMC_TREESET_CORE_HEADER(PARAMS) \
CMC_CMC_TREESET_CORE_HEADER_(CMC_PARAM_PFX(PARAMS), \
CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_CMC_TREESET_CORE_SOURCE(BODY) \
CMC_CMC_TREESET_CORE_SOURCE_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_CMC_TREESET_CORE_SOURCE(PARAMS) \
CMC_CMC_TREESET_CORE_SOURCE_(CMC_PARAM_PFX(PARAMS), \
CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
/* -------------------------------------------------------------------------
* Header
@@ -102,22 +102,22 @@ static const char *cmc_cmc_string_fmt_treeset = "struct %s<%s> "
struct CMC_DEF_FVAL(SNAME) \
{ \
/* Comparator function */ \
int (*cmp)(V, V); \
CMC_DEF_FTAB_CMP(V); \
\
/* Copy function */ \
V (*cpy)(V); \
CMC_DEF_FTAB_CPY(V); \
\
/* To string function */ \
bool (*str)(FILE *, V); \
CMC_DEF_FTAB_STR(V); \
\
/* Free from memory function */ \
void (*free)(V); \
CMC_DEF_FTAB_FREE(V); \
\
/* Hash function */ \
size_t (*hash)(V); \
CMC_DEF_FTAB_HASH(V); \
\
/* Priority function */ \
int (*pri)(V, V); \
CMC_DEF_FTAB_PRI(V); \
}; \
\
/* Treeset Iterator */ \
+27 -27
View File
@@ -24,17 +24,17 @@
* The part 'INIT' gives a new way of initializing a collection. The collection
* struct is not heap allocated, only its internal structure (nodes, buffers).
*/
#define CMC_EXT_CMC_DEQUE_INIT(BODY) \
CMC_EXT_CMC_DEQUE_INIT_HEADER(BODY) \
CMC_EXT_CMC_DEQUE_INIT_SOURCE(BODY)
#define CMC_EXT_CMC_DEQUE_INIT(PARAMS) \
CMC_EXT_CMC_DEQUE_INIT_HEADER(PARAMS) \
CMC_EXT_CMC_DEQUE_INIT_SOURCE(PARAMS)
#define CMC_EXT_CMC_DEQUE_INIT_HEADER(BODY) \
CMC_EXT_CMC_DEQUE_INIT_HEADER_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_DEQUE_INIT_HEADER(PARAMS) \
CMC_EXT_CMC_DEQUE_INIT_HEADER_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_DEQUE_INIT_SOURCE(BODY) \
CMC_EXT_CMC_DEQUE_INIT_SOURCE_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_DEQUE_INIT_SOURCE(PARAMS) \
CMC_EXT_CMC_DEQUE_INIT_SOURCE_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_DEQUE_INIT_HEADER_(PFX, SNAME, V) \
\
@@ -87,17 +87,17 @@
/**
* ITER
*/
#define CMC_EXT_CMC_DEQUE_ITER(BODY) \
CMC_EXT_CMC_DEQUE_ITER_HEADER(BODY) \
CMC_EXT_CMC_DEQUE_ITER_SOURCE(BODY)
#define CMC_EXT_CMC_DEQUE_ITER(PARAMS) \
CMC_EXT_CMC_DEQUE_ITER_HEADER(PARAMS) \
CMC_EXT_CMC_DEQUE_ITER_SOURCE(PARAMS)
#define CMC_EXT_CMC_DEQUE_ITER_HEADER(BODY) \
CMC_EXT_CMC_DEQUE_ITER_HEADER_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_DEQUE_ITER_HEADER(PARAMS) \
CMC_EXT_CMC_DEQUE_ITER_HEADER_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_DEQUE_ITER_SOURCE(BODY) \
CMC_EXT_CMC_DEQUE_ITER_SOURCE_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_DEQUE_ITER_SOURCE(PARAMS) \
CMC_EXT_CMC_DEQUE_ITER_SOURCE_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_DEQUE_ITER_HEADER_(PFX, SNAME, V) \
\
@@ -373,17 +373,17 @@ static const char *cmc_cmc_string_fmt_deque = "struct %s<%s> "
"alloc:%p, "
"callbacks:%p }";
#define CMC_EXT_CMC_DEQUE_STR(BODY) \
CMC_EXT_CMC_DEQUE_STR_HEADER(BODY) \
CMC_EXT_CMC_DEQUE_STR_SOURCE(BODY)
#define CMC_EXT_CMC_DEQUE_STR(PARAMS) \
CMC_EXT_CMC_DEQUE_STR_HEADER(PARAMS) \
CMC_EXT_CMC_DEQUE_STR_SOURCE(PARAMS)
#define CMC_EXT_CMC_DEQUE_STR_HEADER(BODY) \
CMC_EXT_CMC_DEQUE_STR_HEADER_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_DEQUE_STR_HEADER(PARAMS) \
CMC_EXT_CMC_DEQUE_STR_HEADER_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_DEQUE_STR_SOURCE(BODY) \
CMC_EXT_CMC_DEQUE_STR_SOURCE_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_DEQUE_STR_SOURCE(PARAMS) \
CMC_EXT_CMC_DEQUE_STR_SOURCE_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_DEQUE_STR_HEADER_(PFX, SNAME, V) \
\
+33 -33
View File
@@ -24,19 +24,19 @@
* The part 'INIT' gives a new way of initializing a collection. The collection
* struct is not heap allocated, only its internal structure (nodes, buffers).
*/
#define CMC_EXT_CMC_HASHMAP_INIT(BODY) \
CMC_EXT_CMC_HASHMAP_INIT_HEADER(BODY) \
CMC_EXT_CMC_HASHMAP_INIT_SOURCE(BODY)
#define CMC_EXT_CMC_HASHMAP_INIT(PARAMS) \
CMC_EXT_CMC_HASHMAP_INIT_HEADER(PARAMS) \
CMC_EXT_CMC_HASHMAP_INIT_SOURCE(PARAMS)
#define CMC_EXT_CMC_HASHMAP_INIT_HEADER(BODY) \
CMC_EXT_CMC_HASHMAP_INIT_HEADER_(CMC_PARAM_PFX(BODY), \
CMC_PARAM_SNAME(BODY), CMC_PARAM_K(BODY), \
CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_HASHMAP_INIT_HEADER(PARAMS) \
CMC_EXT_CMC_HASHMAP_INIT_HEADER_(CMC_PARAM_PFX(PARAMS), \
CMC_PARAM_SNAME(PARAMS), \
CMC_PARAM_K(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_HASHMAP_INIT_SOURCE(BODY) \
CMC_EXT_CMC_HASHMAP_INIT_SOURCE_(CMC_PARAM_PFX(BODY), \
CMC_PARAM_SNAME(BODY), CMC_PARAM_K(BODY), \
CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_HASHMAP_INIT_SOURCE(PARAMS) \
CMC_EXT_CMC_HASHMAP_INIT_SOURCE_(CMC_PARAM_PFX(PARAMS), \
CMC_PARAM_SNAME(PARAMS), \
CMC_PARAM_K(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_HASHMAP_INIT_HEADER_(PFX, SNAME, K, V) \
\
@@ -102,19 +102,19 @@
/**
* ITER
*/
#define CMC_EXT_CMC_HASHMAP_ITER(BODY) \
CMC_EXT_CMC_HASHMAP_ITER_HEADER(BODY) \
CMC_EXT_CMC_HASHMAP_ITER_SOURCE(BODY)
#define CMC_EXT_CMC_HASHMAP_ITER(PARAMS) \
CMC_EXT_CMC_HASHMAP_ITER_HEADER(PARAMS) \
CMC_EXT_CMC_HASHMAP_ITER_SOURCE(PARAMS)
#define CMC_EXT_CMC_HASHMAP_ITER_HEADER(BODY) \
CMC_EXT_CMC_HASHMAP_ITER_HEADER_(CMC_PARAM_PFX(BODY), \
CMC_PARAM_SNAME(BODY), CMC_PARAM_K(BODY), \
CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_HASHMAP_ITER_HEADER(PARAMS) \
CMC_EXT_CMC_HASHMAP_ITER_HEADER_(CMC_PARAM_PFX(PARAMS), \
CMC_PARAM_SNAME(PARAMS), \
CMC_PARAM_K(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_HASHMAP_ITER_SOURCE(BODY) \
CMC_EXT_CMC_HASHMAP_ITER_SOURCE_(CMC_PARAM_PFX(BODY), \
CMC_PARAM_SNAME(BODY), CMC_PARAM_K(BODY), \
CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_HASHMAP_ITER_SOURCE(PARAMS) \
CMC_EXT_CMC_HASHMAP_ITER_SOURCE_(CMC_PARAM_PFX(PARAMS), \
CMC_PARAM_SNAME(PARAMS), \
CMC_PARAM_K(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_HASHMAP_ITER_HEADER_(PFX, SNAME, K, V) \
\
@@ -449,19 +449,19 @@ static const char *cmc_cmc_string_fmt_hashmap = "struct %s<%s, %s> "
"alloc:%p, "
"callbacks:%p }";
#define CMC_EXT_CMC_HASHMAP_STR(BODY) \
CMC_EXT_CMC_HASHMAP_STR_HEADER(BODY) \
CMC_EXT_CMC_HASHMAP_STR_SOURCE(BODY)
#define CMC_EXT_CMC_HASHMAP_STR(PARAMS) \
CMC_EXT_CMC_HASHMAP_STR_HEADER(PARAMS) \
CMC_EXT_CMC_HASHMAP_STR_SOURCE(PARAMS)
#define CMC_EXT_CMC_HASHMAP_STR_HEADER(BODY) \
CMC_EXT_CMC_HASHMAP_STR_HEADER_(CMC_PARAM_PFX(BODY), \
CMC_PARAM_SNAME(BODY), CMC_PARAM_K(BODY), \
CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_HASHMAP_STR_HEADER(PARAMS) \
CMC_EXT_CMC_HASHMAP_STR_HEADER_(CMC_PARAM_PFX(PARAMS), \
CMC_PARAM_SNAME(PARAMS), \
CMC_PARAM_K(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_HASHMAP_STR_SOURCE(BODY) \
CMC_EXT_CMC_HASHMAP_STR_SOURCE_(CMC_PARAM_PFX(BODY), \
CMC_PARAM_SNAME(BODY), CMC_PARAM_K(BODY), \
CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_HASHMAP_STR_SOURCE(PARAMS) \
CMC_EXT_CMC_HASHMAP_STR_SOURCE_(CMC_PARAM_PFX(PARAMS), \
CMC_PARAM_SNAME(PARAMS), \
CMC_PARAM_K(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_HASHMAP_STR_HEADER_(PFX, SNAME, K, V) \
\
+22 -22
View File
@@ -21,19 +21,19 @@
/**
* ITER
*/
#define CMC_EXT_CMC_HASHMULTIMAP_ITER(BODY) \
CMC_EXT_CMC_HASHMULTIMAP_ITER_HEADER(BODY) \
CMC_EXT_CMC_HASHMULTIMAP_ITER_SOURCE(BODY)
#define CMC_EXT_CMC_HASHMULTIMAP_ITER(PARAMS) \
CMC_EXT_CMC_HASHMULTIMAP_ITER_HEADER(PARAMS) \
CMC_EXT_CMC_HASHMULTIMAP_ITER_SOURCE(PARAMS)
#define CMC_EXT_CMC_HASHMULTIMAP_ITER_HEADER(BODY) \
CMC_EXT_CMC_HASHMULTIMAP_ITER_HEADER_( \
CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), CMC_PARAM_K(BODY), \
CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_HASHMULTIMAP_ITER_HEADER(PARAMS) \
CMC_EXT_CMC_HASHMULTIMAP_ITER_HEADER_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_K(PARAMS), \
CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_HASHMULTIMAP_ITER_SOURCE(BODY) \
CMC_EXT_CMC_HASHMULTIMAP_ITER_SOURCE_( \
CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), CMC_PARAM_K(BODY), \
CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_HASHMULTIMAP_ITER_SOURCE(PARAMS) \
CMC_EXT_CMC_HASHMULTIMAP_ITER_SOURCE_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_K(PARAMS), \
CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_HASHMULTIMAP_ITER_HEADER_(PFX, SNAME, K, V) \
\
@@ -391,19 +391,19 @@ static const char *cmc_cmc_string_fmt_hashmultimap = "struct %s<%s, %s> "
"alloc:%p, "
"callbacks:%p }";
#define CMC_EXT_CMC_HASHMULTIMAP_STR(BODY) \
CMC_EXT_CMC_HASHMULTIMAP_STR_HEADER(BODY) \
CMC_EXT_CMC_HASHMULTIMAP_STR_SOURCE(BODY)
#define CMC_EXT_CMC_HASHMULTIMAP_STR(PARAMS) \
CMC_EXT_CMC_HASHMULTIMAP_STR_HEADER(PARAMS) \
CMC_EXT_CMC_HASHMULTIMAP_STR_SOURCE(PARAMS)
#define CMC_EXT_CMC_HASHMULTIMAP_STR_HEADER(BODY) \
CMC_EXT_CMC_HASHMULTIMAP_STR_HEADER_(CMC_PARAM_PFX(BODY), \
CMC_PARAM_SNAME(BODY), \
CMC_PARAM_K(BODY), CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_HASHMULTIMAP_STR_HEADER(PARAMS) \
CMC_EXT_CMC_HASHMULTIMAP_STR_HEADER_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_K(PARAMS), \
CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_HASHMULTIMAP_STR_SOURCE(BODY) \
CMC_EXT_CMC_HASHMULTIMAP_STR_SOURCE_(CMC_PARAM_PFX(BODY), \
CMC_PARAM_SNAME(BODY), \
CMC_PARAM_K(BODY), CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_HASHMULTIMAP_STR_SOURCE(PARAMS) \
CMC_EXT_CMC_HASHMULTIMAP_STR_SOURCE_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_K(PARAMS), \
CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_HASHMULTIMAP_STR_HEADER_(PFX, SNAME, K, V) \
\
+18 -18
View File
@@ -21,17 +21,17 @@
/**
* ITER
*/
#define CMC_EXT_CMC_HASHMULTISET_ITER(BODY) \
CMC_EXT_CMC_HASHMULTISET_ITER_HEADER(BODY) \
CMC_EXT_CMC_HASHMULTISET_ITER_SOURCE(BODY)
#define CMC_EXT_CMC_HASHMULTISET_ITER(PARAMS) \
CMC_EXT_CMC_HASHMULTISET_ITER_HEADER(PARAMS) \
CMC_EXT_CMC_HASHMULTISET_ITER_SOURCE(PARAMS)
#define CMC_EXT_CMC_HASHMULTISET_ITER_HEADER(BODY) \
CMC_EXT_CMC_HASHMULTISET_ITER_HEADER_( \
CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_HASHMULTISET_ITER_HEADER(PARAMS) \
CMC_EXT_CMC_HASHMULTISET_ITER_HEADER_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_HASHMULTISET_ITER_SOURCE(BODY) \
CMC_EXT_CMC_HASHMULTISET_ITER_SOURCE_( \
CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_HASHMULTISET_ITER_SOURCE(PARAMS) \
CMC_EXT_CMC_HASHMULTISET_ITER_SOURCE_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_HASHMULTISET_ITER_HEADER_(PFX, SNAME, V) \
\
@@ -358,17 +358,17 @@ static const char *cmc_cmc_string_fmt_hashmultiset =
"alloc:%p, "
"callbacks:%p }";
#define CMC_EXT_CMC_HASHMULTISET_STR(BODY) \
CMC_EXT_CMC_HASHMULTISET_STR_HEADER(BODY) \
CMC_EXT_CMC_HASHMULTISET_STR_SOURCE(BODY)
#define CMC_EXT_CMC_HASHMULTISET_STR(PARAMS) \
CMC_EXT_CMC_HASHMULTISET_STR_HEADER(PARAMS) \
CMC_EXT_CMC_HASHMULTISET_STR_SOURCE(PARAMS)
#define CMC_EXT_CMC_HASHMULTISET_STR_HEADER(BODY) \
CMC_EXT_CMC_HASHMULTISET_STR_HEADER_( \
CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_HASHMULTISET_STR_HEADER(PARAMS) \
CMC_EXT_CMC_HASHMULTISET_STR_HEADER_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_HASHMULTISET_STR_SOURCE(BODY) \
CMC_EXT_CMC_HASHMULTISET_STR_SOURCE_( \
CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_HASHMULTISET_STR_SOURCE(PARAMS) \
CMC_EXT_CMC_HASHMULTISET_STR_SOURCE_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_HASHMULTISET_STR_HEADER_(PFX, SNAME, V) \
\
+18 -18
View File
@@ -21,17 +21,17 @@
/**
* ITER
*/
#define CMC_EXT_CMC_HASHSET_ITER(BODY) \
CMC_EXT_CMC_HASHSET_ITER_HEADER(BODY) \
CMC_EXT_CMC_HASHSET_ITER_SOURCE(BODY)
#define CMC_EXT_CMC_HASHSET_ITER(PARAMS) \
CMC_EXT_CMC_HASHSET_ITER_HEADER(PARAMS) \
CMC_EXT_CMC_HASHSET_ITER_SOURCE(PARAMS)
#define CMC_EXT_CMC_HASHSET_ITER_HEADER(BODY) \
CMC_EXT_CMC_HASHSET_ITER_HEADER_(CMC_PARAM_PFX(BODY), \
CMC_PARAM_SNAME(BODY), CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_HASHSET_ITER_HEADER(PARAMS) \
CMC_EXT_CMC_HASHSET_ITER_HEADER_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_HASHSET_ITER_SOURCE(BODY) \
CMC_EXT_CMC_HASHSET_ITER_SOURCE_(CMC_PARAM_PFX(BODY), \
CMC_PARAM_SNAME(BODY), CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_HASHSET_ITER_SOURCE(PARAMS) \
CMC_EXT_CMC_HASHSET_ITER_SOURCE_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_HASHSET_ITER_HEADER_(PFX, SNAME, V) \
\
@@ -347,17 +347,17 @@ static const char *cmc_cmc_string_fmt_hashset = "struct %s<%s> "
"alloc:%p, "
"callbacks: %p }";
#define CMC_EXT_CMC_HASHSET_STR(BODY) \
CMC_EXT_CMC_HASHSET_STR_HEADER(BODY) \
CMC_EXT_CMC_HASHSET_STR_SOURCE(BODY)
#define CMC_EXT_CMC_HASHSET_STR(PARAMS) \
CMC_EXT_CMC_HASHSET_STR_HEADER(PARAMS) \
CMC_EXT_CMC_HASHSET_STR_SOURCE(PARAMS)
#define CMC_EXT_CMC_HASHSET_STR_HEADER(BODY) \
CMC_EXT_CMC_HASHSET_STR_HEADER_(CMC_PARAM_PFX(BODY), \
CMC_PARAM_SNAME(BODY), CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_HASHSET_STR_HEADER(PARAMS) \
CMC_EXT_CMC_HASHSET_STR_HEADER_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_HASHSET_STR_SOURCE(BODY) \
CMC_EXT_CMC_HASHSET_STR_SOURCE_(CMC_PARAM_PFX(BODY), \
CMC_PARAM_SNAME(BODY), CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_HASHSET_STR_SOURCE(PARAMS) \
CMC_EXT_CMC_HASHSET_STR_SOURCE_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_HASHSET_STR_HEADER_(PFX, SNAME, V) \
\
+18 -18
View File
@@ -18,17 +18,17 @@
*/
#define CMC_EXT_CMC_HEAP_PARTS ITER, STR
#define CMC_EXT_CMC_HEAP_ITER(BODY) \
CMC_EXT_CMC_HEAP_ITER_HEADER(BODY) \
CMC_EXT_CMC_HEAP_ITER_SOURCE(BODY)
#define CMC_EXT_CMC_HEAP_ITER(PARAMS) \
CMC_EXT_CMC_HEAP_ITER_HEADER(PARAMS) \
CMC_EXT_CMC_HEAP_ITER_SOURCE(PARAMS)
#define CMC_EXT_CMC_HEAP_ITER_HEADER(BODY) \
CMC_EXT_CMC_HEAP_ITER_HEADER_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_HEAP_ITER_HEADER(PARAMS) \
CMC_EXT_CMC_HEAP_ITER_HEADER_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_HEAP_ITER_SOURCE(BODY) \
CMC_EXT_CMC_HEAP_ITER_SOURCE_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_HEAP_ITER_SOURCE(PARAMS) \
CMC_EXT_CMC_HEAP_ITER_SOURCE_( \
CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_HEAP_ITER_HEADER_(PFX, SNAME, V) \
\
@@ -264,17 +264,17 @@ static const char *cmc_cmc_string_fmt_heap = "struct %s<%s> "
"alloc:%p, "
"callbacks: %p}";
#define CMC_EXT_CMC_HEAP_STR(BODY) \
CMC_EXT_CMC_HEAP_STR_HEADER(BODY) \
CMC_EXT_CMC_HEAP_STR_SOURCE(BODY)
#define CMC_EXT_CMC_HEAP_STR(PARAMS) \
CMC_EXT_CMC_HEAP_STR_HEADER(PARAMS) \
CMC_EXT_CMC_HEAP_STR_SOURCE(PARAMS)
#define CMC_EXT_CMC_HEAP_STR_HEADER(BODY) \
CMC_EXT_CMC_HEAP_STR_HEADER_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_HEAP_STR_HEADER(PARAMS) \
CMC_EXT_CMC_HEAP_STR_HEADER_(CMC_PARAM_PFX(PARAMS), \
CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_HEAP_STR_SOURCE(BODY) \
CMC_EXT_CMC_HEAP_STR_SOURCE_(CMC_PARAM_PFX(BODY), CMC_PARAM_SNAME(BODY), \
CMC_PARAM_V(BODY))
#define CMC_EXT_CMC_HEAP_STR_SOURCE(PARAMS) \
CMC_EXT_CMC_HEAP_STR_SOURCE_(CMC_PARAM_PFX(PARAMS), \
CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
#define CMC_EXT_CMC_HEAP_STR_HEADER_(PFX, SNAME, V) \
\