11 #include <stdlib.h> |
11 #include <stdlib.h> |
12 |
12 |
13 #ifdef __cplusplus |
13 #ifdef __cplusplus |
14 #ifndef _Bool |
14 #ifndef _Bool |
15 #define _Bool bool |
15 #define _Bool bool |
|
16 #define restrict |
16 #endif |
17 #endif |
17 extern "C" { |
18 extern "C" { |
18 #endif |
19 #endif |
19 |
20 |
20 #define UCX_FOREACH(type,list,elem) \ |
21 #define UCX_FOREACH(type,list,elem) \ |
21 for (type elem = list ; elem != NULL ; elem = elem->next) |
22 for (type elem = list ; elem != NULL ; elem = elem->next) |
|
23 |
|
24 #ifdef __cplusplus |
|
25 #define ucx_dynarray_new(type,identifier,length)\ |
|
26 type* identifier; identifier = new type[length] |
|
27 #define ucx_dynarray_free(identifier) delete [] identifier |
|
28 #else |
|
29 #define ucx_dynarray_new(type,identifier,length)\ |
|
30 type identifier[length] |
|
31 #define ucx_dynarray_free(identifier) |
|
32 #endif |
22 |
33 |
23 /* element1,element2,custom data -> {-1,0,1} */ |
34 /* element1,element2,custom data -> {-1,0,1} */ |
24 typedef int(*cmp_func)(void*,void*,void*); |
35 typedef int(*cmp_func)(void*,void*,void*); |
25 |
36 |
26 /* element,custom data -> copy of element */ |
37 /* element,custom data -> copy of element */ |