Fix issue in case of recursive call of INIT_WITH with conditionnal INIT_WITH
This commit is contained in:
1 parent
1cde4633e6
commit
f26e1e5a12
1 file changed
+6
-5
@@ -4010,13 +4010,14 @@ m_core_parse2_enum (const char str[], const char **endptr)
|
||||
or with the user provided init_func */
|
||||
#define M_EMPLACE_CALL_FUNC(prefix, init_func, oplist, dest, emplace_type) \
|
||||
M_IF(M_KEYWORD_P(INIT_WITH, init_func)) \
|
||||
( \
|
||||
(M_EMPLACE_CALL_FUNC_INIT_WITH, M_EMPLACE_CALL_FUNC_USER_PROVIDED) \
|
||||
(prefix, init_func, oplist, dest, emplace_type)
|
||||
#define M_EMPLACE_CALL_FUNC_INIT_WITH(prefix, init_func, oplist, dest, emplace_type) \
|
||||
/* If INIT_FUNC==INIT_WITH, classic use of INIT_WITH operator */ \
|
||||
M_CALL_INIT_WITH(oplist, dest M_EMPLACE_LIST_VAR(prefix, emplace_type) ) \
|
||||
, \
|
||||
M_CALL_INIT_WITH(oplist, dest M_EMPLACE_LIST_VAR(prefix, emplace_type) )
|
||||
#define M_EMPLACE_CALL_FUNC_USER_PROVIDED(prefix, init_func, oplist, dest, emplace_type) \
|
||||
/* Use the user provided init_func instead (with API transformation) */ \
|
||||
M_APPLY_API(init_func, oplist, dest M_EMPLACE_LIST_VAR(prefix, emplace_type) ) \
|
||||
)
|
||||
M_APPLY_API(init_func, oplist, dest M_EMPLACE_LIST_VAR(prefix, emplace_type) )
|
||||
|
||||
/* Generate one or several definitions for the EMPLACE methods
|
||||
using the operator EMPLACE_TYPE to get the suitable user types
|
||||
|
||||
Reference in new issue
Block a user