WIP new architecture, tests will fail
This commit is contained in:
1 parent
1911415879
commit
4e194f28ee
5 files changed
+131
-91
No files matched your search
@@ -18,13 +18,15 @@
|
||||
*/
|
||||
#define CMC_EXT_CMC_BITSET_PARTS PLACEHOLDER
|
||||
|
||||
#define CMC_EXT_CMC_BITSET_PLACEHOLDER(PARAMS)
|
||||
#define CMC_EXT_CMC_BITSET_PLACEHOLDER(ACCESS, FILE, PARAMS) \
|
||||
CMC_(CMC_(CMC_EXT_CMC_BITSET_PLACEHOLDER_, ACCESS), CMC_(_, FILE))(PARAMS)
|
||||
|
||||
#define CMC_EXT_CMC_BITSET_PLACEHOLDER_HEADER(PARAMS)
|
||||
#define CMC_EXT_CMC_BITSET_PLACEHOLDER_PUBLIC_HEADER(PARAMS)
|
||||
|
||||
#define CMC_EXT_CMC_BITSET_PLACEHOLDER_SOURCE(PARAMS)
|
||||
#define CMC_EXT_CMC_BITSET_PLACEHOLDER_PUBLIC_SOURCE(PARAMS)
|
||||
|
||||
#define CMC_EXT_CMC_BITSET_PLACEHOLDER_HEADER_(PFX, SNAME, V)
|
||||
#define CMC_EXT_CMC_BITSET_PLACEHOLDER_SOURCE_(PFX, SNAME, V)
|
||||
#define CMC_EXT_CMC_BITSET_PLACEHOLDER_PRIVATE_HEADER(PARAMS)
|
||||
|
||||
#define CMC_EXT_CMC_BITSET_PLACEHOLDER_PRIVATE_SOURCE(PARAMS)
|
||||
|
||||
#endif /* CMC_EXT_CMC_BITSET_H */
|
||||
+40
-15
@@ -23,17 +23,24 @@
|
||||
*
|
||||
* The part 'INIT' gives a new way of initializing a collection. The collection
|
||||
* struct is not heap allocated, only its internal structure (nodes, buffers).
|
||||
*
|
||||
* \param ACCESS Either PUBLIC or PRIVATE
|
||||
* \param FILE Either HEADER or SOURCE
|
||||
* \param PARAMS A tuple of form (PFX, SNAME, SIZE, K, V)
|
||||
*/
|
||||
#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(ACCESS, FILE, PARAMS) \
|
||||
CMC_(CMC_(CMC_EXT_CMC_DEQUE_INIT_, ACCESS), CMC_(_, FILE))(PARAMS)
|
||||
|
||||
#define CMC_EXT_CMC_DEQUE_INIT_HEADER(PARAMS) \
|
||||
#define CMC_EXT_CMC_DEQUE_INIT_PUBLIC_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(PARAMS) \
|
||||
#define CMC_EXT_CMC_DEQUE_INIT_PUBLIC_SOURCE(PARAMS) \
|
||||
CMC_EXT_CMC_DEQUE_INIT_SOURCE_(CMC_PARAM_PFX(PARAMS), CMC_PARAM_SNAME(PARAMS), CMC_PARAM_V(PARAMS))
|
||||
|
||||
/* INIT Extension can't be used with opaque struct */
|
||||
#define CMC_EXT_CMC_DEQUE_INIT_PRIVATE_HEADER(PARAMS)
|
||||
#define CMC_EXT_CMC_DEQUE_INIT_PRIVATE_SOURCE(PARAMS)
|
||||
|
||||
#define CMC_EXT_CMC_DEQUE_INIT_HEADER_(PFX, SNAME, V) \
|
||||
\
|
||||
struct SNAME CMC_(PFX, _init)(size_t capacity, struct CMC_DEF_FVAL(SNAME) * f_val); \
|
||||
@@ -98,15 +105,24 @@
|
||||
|
||||
/**
|
||||
* ITER
|
||||
*
|
||||
* \param ACCESS Either PUBLIC or PRIVATE
|
||||
* \param FILE Either HEADER or SOURCE
|
||||
* \param PARAMS A tuple of form (PFX, SNAME, SIZE, K, V)
|
||||
*/
|
||||
#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(ACCESS, FILE, PARAMS) \
|
||||
CMC_(CMC_(CMC_EXT_CMC_DEQUE_ITER_, ACCESS), CMC_(_, FILE))(PARAMS)
|
||||
|
||||
#define CMC_EXT_CMC_DEQUE_ITER_HEADER(PARAMS) \
|
||||
#define CMC_EXT_CMC_DEQUE_ITER_PUBLIC_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(PARAMS) \
|
||||
#define CMC_EXT_CMC_DEQUE_ITER_PUBLIC_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_PRIVATE_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_PRIVATE_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) \
|
||||
@@ -363,15 +379,24 @@
|
||||
|
||||
/**
|
||||
* STR
|
||||
*
|
||||
* \param ACCESS Either PUBLIC or PRIVATE
|
||||
* \param FILE Either HEADER or SOURCE
|
||||
* \param PARAMS A tuple of form (PFX, SNAME, SIZE, K, V)
|
||||
*/
|
||||
#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(ACCESS, FILE, PARAMS) \
|
||||
CMC_(CMC_(CMC_EXT_CMC_DEQUE_STR_, ACCESS), CMC_(_, FILE))(PARAMS)
|
||||
|
||||
#define CMC_EXT_CMC_DEQUE_STR_HEADER(PARAMS) \
|
||||
#define CMC_EXT_CMC_DEQUE_STR_PUBLIC_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(PARAMS) \
|
||||
#define CMC_EXT_CMC_DEQUE_STR_PUBLIC_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_PRIVATE_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_PRIVATE_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) \
|
||||
|
||||
+80
-61
@@ -16,9 +16,10 @@
|
||||
* from any given sub-library. They are:
|
||||
*
|
||||
* - C_MACRO_COLLECTIONS
|
||||
* - C_MACRO_COLLECTIONS_GEN
|
||||
* - C_MACRO_COLLECTIONS_GEN_HEADER
|
||||
* - C_MACRO_COLLECTIONS_GEN_SOURCE
|
||||
* - C_MACRO_COLLECTIONS_INLINE
|
||||
* - C_MACRO_COLLECTIONS_EXTENDED
|
||||
* - C_MACRO_COLLECTIONS_EXTENDED_HEADER
|
||||
* - C_MACRO_COLLECTIONS_EXTENDED_SOURCE
|
||||
* - C_MACRO_COLLECTIONS_ALL
|
||||
* - C_MACRO_COLLECTIONS_ALL_HEADER
|
||||
* - C_MACRO_COLLECTIONS_ALL_SOURCE
|
||||
@@ -88,15 +89,32 @@
|
||||
* \param LIB The collection's sub-library
|
||||
* \param COLLECTION The name of the collection in all uppercase
|
||||
* \param PART The part of the collection (either CORE or one available at EXT)
|
||||
* \param ACCESS Either PUBLIC or PRIVATE
|
||||
* \param FILE Either HEADER or SOURCE
|
||||
* \param PARAMS A tuple of form (PFX, SNAME, SIZE, K, V)
|
||||
*/
|
||||
#define C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, FILE, PARAMS) \
|
||||
C_MACRO_COLLECTIONS_(LIB, COLLECTION, PART, FILE)(PARAMS)
|
||||
#define C_MACRO_COLLECTIONS_(LIB, COLLECTION, PART, FILE) CMC_##LIB##_##COLLECTION##_##PART##_##FILE
|
||||
#define C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, ACCESS, FILE, PARAMS) \
|
||||
C_MACRO_COLLECTIONS_(LIB, COLLECTION, PART, ACCESS, FILE)(PARAMS)
|
||||
|
||||
#define C_MACRO_COLLECTIONS_(LIB, COLLECTION, PART, ACCESS, FILE) \
|
||||
CMC_##LIB##_##COLLECTION##_##PART##_##ACCESS##_##FILE
|
||||
|
||||
/**
|
||||
* C_MACRO_COLLECTIONS_GEN
|
||||
* C_MACRO_COLLECTIONS_INLINE
|
||||
*
|
||||
* Generates both HEADER and SOURCE one after the other of a certain PART of a certain LIB.
|
||||
*
|
||||
* \param LIB The collection's sub-library
|
||||
* \param COLLECTION The name of the collection in all uppercase
|
||||
* \param PART The part of the collection (either CORE or one available at EXT)
|
||||
* \param PARAMS A tuple of form (PFX, SNAME, SIZE, K, V)
|
||||
*/
|
||||
#define C_MACRO_COLLECTIONS_INLINE(LIB, COLLECTION, PART, PARAMS) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, PUBLIC, HEADER, PARAMS) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, PUBLIC, SOURCE, PARAMS)
|
||||
|
||||
/**
|
||||
* C_MACRO_COLLECTIONS_EXTENDED
|
||||
*
|
||||
* Generate the CORE of a collection along with one or more part from EXT. The
|
||||
* headers are generated first, then the source code.
|
||||
@@ -106,37 +124,39 @@
|
||||
* \param PARAMS A tuple of form (PFX, SNAME, SIZE, K, V)
|
||||
* \param PARTS A non-empty tuple of all desired EXT parts
|
||||
*/
|
||||
#define C_MACRO_COLLECTIONS_GEN(LIB, COLLECTION, PARAMS, PARTS) \
|
||||
C_MACRO_COLLECTIONS_GEN_HEADER(LIB, COLLECTION, PARAMS, PARTS) \
|
||||
C_MACRO_COLLECTIONS_GEN_SOURCE(LIB, COLLECTION, PARAMS, PARTS)
|
||||
#define C_MACRO_COLLECTIONS_EXTENDED(LIB, COLLECTION, PARAMS, PARTS) \
|
||||
C_MACRO_COLLECTIONS_EXTENDED_HEADER(LIB, COLLECTION, PUBLIC, PARAMS, PARTS) \
|
||||
C_MACRO_COLLECTIONS_EXTENDED_SOURCE(LIB, COLLECTION, PUBLIC, PARAMS, PARTS)
|
||||
|
||||
/**
|
||||
* C_MACRO_COLLECTIONS_GEN_HEADER
|
||||
* C_MACRO_COLLECTIONS_EXTENDED_HEADER
|
||||
*
|
||||
* Generate all headers of CORE and the specified header parts of a collection.
|
||||
*
|
||||
* \param LIB The collection's sub-library
|
||||
* \param COLLECTION The name of the collection in all uppercase
|
||||
* \param ACCESS Either PUBLIC or PRIVATE
|
||||
* \param PARAMS A tuple of form (PFX, SNAME, SIZE, K, V)
|
||||
* \param PARTS A non-empty tuple of all desired EXT parts
|
||||
*/
|
||||
#define C_MACRO_COLLECTIONS_GEN_HEADER(LIB, COLLECTION, PARAMS, PARTS) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, CORE_PUBLIC, HEADER, PARAMS) \
|
||||
CMC_MAP(CMC_(EXT_, LIB), COLLECTION, HEADER, PARAMS, CMC_EVAL PARTS)
|
||||
#define C_MACRO_COLLECTIONS_EXTENDED_HEADER(LIB, COLLECTION, ACCESS, PARAMS, PARTS) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, CORE, ACCESS, HEADER, PARAMS) \
|
||||
CMC_MAP(CMC_(EXT_, LIB), COLLECTION, ACCESS, HEADER, PARAMS, CMC_EVAL PARTS)
|
||||
|
||||
/**
|
||||
* C_MACRO_COLLECTIONS_GEN_SOURCE
|
||||
* C_MACRO_COLLECTIONS_EXTENDED_SOURCE
|
||||
*
|
||||
* Generate all sources of CORE and the specified source parts of a collection.
|
||||
*
|
||||
* \param LIB The collection's sub-library
|
||||
* \param COLLECTION The name of the collection in all uppercase
|
||||
* \param ACCESS Either PUBLIC or PRIVATE
|
||||
* \param PARAMS A tuple of form (PFX, SNAME, SIZE, K, V)
|
||||
* \param PARTS A non-empty tuple of all desired EXT parts
|
||||
*/
|
||||
#define C_MACRO_COLLECTIONS_GEN_SOURCE(LIB, COLLECTION, PARAMS, PARTS) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, CORE_PUBLIC, SOURCE, PARAMS) \
|
||||
CMC_MAP(CMC_(EXT_, LIB), COLLECTION, SOURCE, PARAMS, CMC_EVAL PARTS)
|
||||
#define C_MACRO_COLLECTIONS_EXTENDED_SOURCE(LIB, COLLECTION, ACCESS, PARAMS, PARTS) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, CORE, ACCESS, SOURCE, PARAMS) \
|
||||
CMC_MAP(CMC_(EXT_, LIB), COLLECTION, ACCESS, SOURCE, PARAMS, CMC_EVAL PARTS)
|
||||
|
||||
/**
|
||||
* C_MACRO_COLLECTIONS_ALL
|
||||
@@ -146,11 +166,11 @@
|
||||
*
|
||||
* \param LIB The collection's library
|
||||
* \param COLLECTION The name of the collection in all uppercase
|
||||
* \param PARAMS A tuple of form (PFX, SNAME, SIZE, K, V
|
||||
* \param PARAMS A tuple of form (PFX, SNAME, SIZE, K, V)
|
||||
*/
|
||||
#define C_MACRO_COLLECTIONS_ALL(LIB, COLLECTION, PARAMS) \
|
||||
C_MACRO_COLLECTIONS_ALL_HEADER(LIB, COLLECTION, PARAMS) \
|
||||
C_MACRO_COLLECTIONS_ALL_SOURCE(LIB, COLLECTION, PARAMS)
|
||||
C_MACRO_COLLECTIONS_ALL_HEADER(LIB, COLLECTION, PUBLIC, PARAMS) \
|
||||
C_MACRO_COLLECTIONS_ALL_SOURCE(LIB, COLLECTION, PUBLIC, PARAMS)
|
||||
|
||||
/**
|
||||
* C_MACRO_COLLECTIONS_ALL_HEADER
|
||||
@@ -159,11 +179,12 @@
|
||||
*
|
||||
* \param LIB The collection's library
|
||||
* \param COLLECTION The name of the collection in all uppercase
|
||||
* \param PARAMS A tuple of form (PFX, SNAME, SIZE, K, V
|
||||
* \param ACCESS Either PUBLIC or PRIVATE
|
||||
* \param PARAMS A tuple of form (PFX, SNAME, SIZE, K, V)
|
||||
*/
|
||||
#define C_MACRO_COLLECTIONS_ALL_HEADER(LIB, COLLECTION, PARAMS) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, CORE_PUBLIC, HEADER, PARAMS) \
|
||||
CMC_MAP(CMC_(EXT_, LIB), COLLECTION, HEADER, PARAMS, C_MACRO_COLLECTIONS_PARTS(LIB, COLLECTION))
|
||||
#define C_MACRO_COLLECTIONS_ALL_HEADER(LIB, COLLECTION, ACCESS, PARAMS) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, CORE, ACCESS, HEADER, PARAMS) \
|
||||
CMC_MAP(CMC_(EXT_, LIB), COLLECTION, ACCESS, HEADER, PARAMS, C_MACRO_COLLECTIONS_PARTS(LIB, COLLECTION))
|
||||
|
||||
/**
|
||||
* C_MACRO_COLLECTIONS_ALL_SOURCE
|
||||
@@ -172,11 +193,12 @@
|
||||
*
|
||||
* \param LIB The collection's library
|
||||
* \param COLLECTION The name of the collection in all uppercase
|
||||
* \param ACCESS Either PUBLIC or PRIVATE
|
||||
* \param PARAMS A tuple of form (PFX, SNAME, SIZE, K, V
|
||||
*/
|
||||
#define C_MACRO_COLLECTIONS_ALL_SOURCE(LIB, COLLECTION, PARAMS) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, CORE_PUBLIC, SOURCE, PARAMS) \
|
||||
CMC_MAP(CMC_(EXT_, LIB), COLLECTION, SOURCE, PARAMS, C_MACRO_COLLECTIONS_PARTS(LIB, COLLECTION))
|
||||
#define C_MACRO_COLLECTIONS_ALL_SOURCE(LIB, COLLECTION, ACCESS, PARAMS) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, CORE, ACCESS, SOURCE, PARAMS) \
|
||||
CMC_MAP(CMC_(EXT_, LIB), COLLECTION, ACCESS, SOURCE, PARAMS, C_MACRO_COLLECTIONS_PARTS(LIB, COLLECTION))
|
||||
|
||||
/**
|
||||
* C_MACRO_COLLECTIONS_PARTS
|
||||
@@ -209,40 +231,37 @@
|
||||
7, 6, 5, 4, 3, 2, 1, 0
|
||||
|
||||
/* Generates the FILE for each part (__VA_ARGS__) of a collection */
|
||||
#define CMC_MAP(LIB, COLLECTION, FILE, PARAMS, ...) \
|
||||
#define CMC_MAP(LIB, COLLECTION, ACCESS, FILE, PARAMS, ...) \
|
||||
CMC_(CMC_MAP_, CMC_NARG(__VA_ARGS__)) \
|
||||
(LIB, COLLECTION, FILE, PARAMS, __VA_ARGS__)
|
||||
(LIB, COLLECTION, ACCESS, FILE, PARAMS, __VA_ARGS__)
|
||||
|
||||
#define CMC_MAP_0(LIB, COLLECTION, FILE, PARAMS, PART, ...)
|
||||
#define CMC_MAP_1(LIB, COLLECTION, FILE, PARAMS, PART, ...) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, FILE, PARAMS) \
|
||||
CMC_MAP_0(LIB, COLLECTION, FILE, PARAMS, __VA_ARGS__)
|
||||
#define CMC_MAP_2(LIB, COLLECTION, FILE, PARAMS, PART, ...) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, FILE, PARAMS) \
|
||||
CMC_MAP_1(LIB, COLLECTION, FILE, PARAMS, __VA_ARGS__)
|
||||
#define CMC_MAP_3(LIB, COLLECTION, FILE, PARAMS, PART, ...) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, FILE, PARAMS) \
|
||||
CMC_MAP_2(LIB, COLLECTION, FILE, PARAMS, __VA_ARGS__)
|
||||
#define CMC_MAP_4(LIB, COLLECTION, FILE, PARAMS, PART, ...) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, FILE, PARAMS) \
|
||||
CMC_MAP_3(LIB, COLLECTION, FILE, PARAMS, __VA_ARGS__)
|
||||
#define CMC_MAP_5(LIB, COLLECTION, FILE, PARAMS, PART, ...) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, FILE, PARAMS) \
|
||||
CMC_MAP_4(LIB, COLLECTION, FILE, PARAMS, __VA_ARGS__)
|
||||
#define CMC_MAP_6(LIB, COLLECTION, FILE, PARAMS, PART, ...) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, FILE, PARAMS) \
|
||||
CMC_MAP_5(LIB, COLLECTION, FILE, PARAMS, __VA_ARGS__)
|
||||
#define CMC_MAP_7(LIB, COLLECTION, FILE, PARAMS, PART, ...) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, FILE, PARAMS) \
|
||||
CMC_MAP_6(LIB, COLLECTION, FILE, PARAMS, __VA_ARGS__)
|
||||
#define CMC_MAP_8(LIB, COLLECTION, FILE, PARAMS, PART, ...) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, FILE, PARAMS) \
|
||||
CMC_MAP_7(LIB, COLLECTION, FILE, PARAMS, __VA_ARGS__)
|
||||
#define CMC_MAP_9(LIB, COLLECTION, FILE, PARAMS, PART, ...) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, FILE, PARAMS) \
|
||||
CMC_MAP_8(LIB, COLLECTION, FILE, PARAMS, __VA_ARGS__)
|
||||
#define CMC_MAP_10(LIB, COLLECTION, FILE, PARAMS, PART, ...) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, FILE, PARAMS) \
|
||||
CMC_MAP_9(LIB, COLLECTION, FILE, PARAMS, __VA_ARGS__)
|
||||
#define CMC_MAP_9(LIB, COLLECTION, ACCESS, FILE, PARAMS, PART, ...) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, ACCESS, FILE, PARAMS) \
|
||||
CMC_MAP_8(LIB, COLLECTION, ACCESS, FILE, PARAMS, __VA_ARGS__)
|
||||
#define CMC_MAP_8(LIB, COLLECTION, ACCESS, FILE, PARAMS, PART, ...) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, ACCESS, FILE, PARAMS) \
|
||||
CMC_MAP_7(LIB, COLLECTION, ACCESS, FILE, PARAMS, __VA_ARGS__)
|
||||
#define CMC_MAP_7(LIB, COLLECTION, ACCESS, FILE, PARAMS, PART, ...) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, ACCESS, FILE, PARAMS) \
|
||||
CMC_MAP_6(LIB, COLLECTION, ACCESS, FILE, PARAMS, __VA_ARGS__)
|
||||
#define CMC_MAP_6(LIB, COLLECTION, ACCESS, FILE, PARAMS, PART, ...) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, ACCESS, FILE, PARAMS) \
|
||||
CMC_MAP_5(LIB, COLLECTION, ACCESS, FILE, PARAMS, __VA_ARGS__)
|
||||
#define CMC_MAP_5(LIB, COLLECTION, ACCESS, FILE, PARAMS, PART, ...) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, ACCESS, FILE, PARAMS) \
|
||||
CMC_MAP_4(LIB, COLLECTION, ACCESS, FILE, PARAMS, __VA_ARGS__)
|
||||
#define CMC_MAP_4(LIB, COLLECTION, ACCESS, FILE, PARAMS, PART, ...) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, ACCESS, FILE, PARAMS) \
|
||||
CMC_MAP_3(LIB, COLLECTION, ACCESS, FILE, PARAMS, __VA_ARGS__)
|
||||
#define CMC_MAP_3(LIB, COLLECTION, ACCESS, FILE, PARAMS, PART, ...) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, ACCESS, FILE, PARAMS) \
|
||||
CMC_MAP_2(LIB, COLLECTION, ACCESS, FILE, PARAMS, __VA_ARGS__)
|
||||
#define CMC_MAP_2(LIB, COLLECTION, ACCESS, FILE, PARAMS, PART, ...) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, ACCESS, FILE, PARAMS) \
|
||||
CMC_MAP_1(LIB, COLLECTION, ACCESS, FILE, PARAMS, __VA_ARGS__)
|
||||
#define CMC_MAP_1(LIB, COLLECTION, ACCESS, FILE, PARAMS, PART, ...) \
|
||||
C_MACRO_COLLECTIONS(LIB, COLLECTION, PART, ACCESS, FILE, PARAMS) \
|
||||
CMC_MAP_0(LIB, COLLECTION, ACCESS, FILE, PARAMS, __VA_ARGS__)
|
||||
#define CMC_MAP_0(LIB, COLLECTION, ACCESS, FILE, PARAMS, ...)
|
||||
|
||||
#endif /* CMC_MACRO_COLLECTIONS_H */
|
||||
Reference in new issue
Block a user