EMPLACE: Fix expansion of methods as macro in the oplist
by performing another evaluation step.
This commit is contained in:
1 parent
840226c7fd
commit
39e67eebdc
1 file changed
+4
-2
@@ -4466,9 +4466,11 @@ m_core_parse2_enum (const char str[], const char **endptr)
|
|||||||
NOTE: Use internally, M_MAP2, M_MAP2_C & M_MAP3
|
NOTE: Use internally, M_MAP2, M_MAP2_C & M_MAP3
|
||||||
*/
|
*/
|
||||||
#define M_EMPLACE_QUEUE_DEF(name, name_t, function_name, oplist, macro) \
|
#define M_EMPLACE_QUEUE_DEF(name, name_t, function_name, oplist, macro) \
|
||||||
|
M_ID( \
|
||||||
M_IF(M_TEST_METHOD_ALTER_P(EMPLACE_TYPE, oplist)) \
|
M_IF(M_TEST_METHOD_ALTER_P(EMPLACE_TYPE, oplist)) \
|
||||||
(M_EMPLACE_QUEUE_DEF_EXPAND, M_EAT) \
|
(M_EMPLACE_QUEUE_DEF_EXPAND, M_EAT) \
|
||||||
(name, name_t, function_name, oplist, macro, M_GET_EMPLACE_TYPE oplist)
|
(name, name_t, function_name, oplist, macro, M_GET_EMPLACE_TYPE oplist) \
|
||||||
|
)
|
||||||
/* One EMPLACE_TYPE operator is defined ==> Perform the emplace function expansion.
|
/* One EMPLACE_TYPE operator is defined ==> Perform the emplace function expansion.
|
||||||
If the emplace type starts with parenthesis, it is only one with multiple args */
|
If the emplace type starts with parenthesis, it is only one with multiple args */
|
||||||
#define M_EMPLACE_QUEUE_DEF_EXPAND(name, name_t, function_name, oplist, macro, emplace_type) \
|
#define M_EMPLACE_QUEUE_DEF_EXPAND(name, name_t, function_name, oplist, macro, emplace_type) \
|
||||||
@@ -4600,7 +4602,7 @@ m_core_parse2_enum (const char str[], const char **endptr)
|
|||||||
associative array emplace generation or queue generation
|
associative array emplace generation or queue generation
|
||||||
depending on the parameter isSet (= 0 or 1) */
|
depending on the parameter isSet (= 0 or 1) */
|
||||||
#define M_EMPLACE_ASS_ARRAY_OR_QUEUE_DEF(isSet, name, name_t, key_oplist, val_oplist) \
|
#define M_EMPLACE_ASS_ARRAY_OR_QUEUE_DEF(isSet, name, name_t, key_oplist, val_oplist) \
|
||||||
M_C(M_EMPLACE_ASS_ARRAY_OR_QUEUE_DEF, isSet)(name, name_t, key_oplist, val_oplist)
|
M_ID( M_C(M_EMPLACE_ASS_ARRAY_OR_QUEUE_DEF, isSet)(name, name_t, key_oplist, val_oplist) )
|
||||||
#define M_EMPLACE_ASS_ARRAY_OR_QUEUE_DEF0(name, name_t, key_oplist, val_oplist) \
|
#define M_EMPLACE_ASS_ARRAY_OR_QUEUE_DEF0(name, name_t, key_oplist, val_oplist) \
|
||||||
M_EMPLACE_ASS_ARRAY_DEF(name, name_t, M_C(name, _emplace), key_oplist, val_oplist, M_EMPLACE_ASS_ARRA1_BOTH_GENE, M_EMPLACE_ASS_ARRA1_KEY_GENE, M_EMPLACE_ASS_ARRA1_VAL_GENE)
|
M_EMPLACE_ASS_ARRAY_DEF(name, name_t, M_C(name, _emplace), key_oplist, val_oplist, M_EMPLACE_ASS_ARRA1_BOTH_GENE, M_EMPLACE_ASS_ARRA1_KEY_GENE, M_EMPLACE_ASS_ARRA1_VAL_GENE)
|
||||||
#define M_EMPLACE_ASS_ARRAY_OR_QUEUE_DEF1(name, name_t, key_oplist, val_oplist) \
|
#define M_EMPLACE_ASS_ARRAY_OR_QUEUE_DEF1(name, name_t, key_oplist, val_oplist) \
|
||||||
|
|||||||
Reference in new issue
Block a user