Refactoring
Now using CMC_DEF_FTAB macros Renamed BODY to PARAMS
This commit is contained in:
1 parent
546ac80030
commit
9209e0d5ec
22 files changed
+394
-390
No files matched your search
+7
-7
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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) \
|
||||
\
|
||||
|
||||
Reference in new issue
Block a user