List_tryRemoveAt
This commit is contained in:
parent
823223ffa7
commit
fd9e5dda78
@ -20,6 +20,7 @@
|
|||||||
T* List_##T##_expand(List_##T* ptr, u32 count);\
|
T* List_##T##_expand(List_##T* ptr, u32 count);\
|
||||||
void List_##T##_push(List_##T* ptr, T value);\
|
void List_##T##_push(List_##T* ptr, T value);\
|
||||||
void List_##T##_pushMany(List_##T* ptr, T* values, u32 count);\
|
void List_##T##_pushMany(List_##T* ptr, T* values, u32 count);\
|
||||||
|
bool List_##T##_tryRemoveAt(List_##T* ptr, u32 i);\
|
||||||
|
|
||||||
|
|
||||||
#define List_define(T)\
|
#define List_define(T)\
|
||||||
@ -52,6 +53,17 @@
|
|||||||
T* empty_cell_ptr = List_##T##_expand(ptr, count);\
|
T* empty_cell_ptr = List_##T##_expand(ptr, count);\
|
||||||
memcpy(empty_cell_ptr, values, count * sizeof(T));\
|
memcpy(empty_cell_ptr, values, count * sizeof(T));\
|
||||||
}\
|
}\
|
||||||
|
\
|
||||||
|
bool List_##T##_tryRemoveAt(List_##T* ptr, u32 i){\
|
||||||
|
if(ptr->len == 0 || i >= ptr->len)\
|
||||||
|
return false;\
|
||||||
|
\
|
||||||
|
ptr->len--;\
|
||||||
|
for(; i < ptr->len; i++){\
|
||||||
|
ptr->data[i] = ptr->data[i + 1];\
|
||||||
|
}\
|
||||||
|
return true;\
|
||||||
|
}\
|
||||||
|
|
||||||
|
|
||||||
List_declare(u32);
|
List_declare(u32);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user