Fix C++ array_pop
This commit is contained in:
@@ -50,11 +50,14 @@ BEGIN_C_LINKAGE
|
||||
\
|
||||
return (TYPE *)(header + 1); \
|
||||
}())
|
||||
#define wapp_array_pop(TYPE, ARRAY_PTR) \
|
||||
(ARRAY_PTR != NULL && _array_count((u8 *)ARRAY_PTR) > 0 ? \
|
||||
*((TYPE *)_array_pop((u8 *)ARRAY_PTR, sizeof(TYPE))) : \
|
||||
TYPE{} \
|
||||
)
|
||||
#define wapp_array_pop(TYPE, ARRAY_PTR) ([&]() { \
|
||||
if (ARRAY_PTR != NULL || _array_count((u8 *)ARRAY_PTR) == 0) { \
|
||||
TYPE result{}; \
|
||||
return result; \
|
||||
} \
|
||||
\
|
||||
return *((TYPE *)_array_pop((u8 *)ARRAY_PTR, sizeof(TYPE))); \
|
||||
}())
|
||||
#else
|
||||
#define _stack_array(TYPE, SIZE) struct { ArrayHeader header; TYPE items[SIZE]; }
|
||||
#define wapp_array(TYPE, ...) \
|
||||
|
||||
Reference in New Issue
Block a user