|
CX Framework
Cross-platform C utility framework
|
Dynamic arrays with type-safe generic programming. More...
#include <cx/cx.h>#include <cx/debug/assert.h>#include <cx/debug/dbgtypes.h>#include <cx/utils/macros/unused.h>Go to the source code of this file.
Macros | |
| #define | saDeclareType(name, typ) |
| #define | saDeclare(name) saDeclareType(name, name) |
| #define | saDeclarePtr(name) saDeclareType(name, name*) |
| #define | saInitNone { .a = 0 } |
| #define | SA_Grow(rate) (((uint32)SA_GROW_##rate) << 24) |
| #define | saSize(ref) ((ref)._is_sarray ? _saHdr(SAREF(ref))->count : 0) |
| #define | saCapacity(ref) ((ref)._is_sarray ? _saHdr(SAREF(ref))->capacity : 0) |
| #define | saElemSize(ref) ((ref)._is_sarray ? stGetSize(_saHdr(SAREF(ref))->elemtype) : 0) |
| #define | saElemType(ref) ((ref)._is_sarray ? _saHdr(SAREF(ref))->elemtype : 0) |
| #define | saValid(ref) ((ref).a) |
| #define | saInit(out, type, capacity, ...) _saInit(SAHANDLE(out), stFullType(type), capacity, false, opt_flags(__VA_ARGS__)) |
| #define | saTryInit(out, type, capacity, ...) _saInit(SAHANDLE(out), stFullType(type), capacity, true, opt_flags(__VA_ARGS__)) |
| #define | saDestroy(handle) _saDestroy(SAHANDLE(handle)) |
| #define | saReserve(handle, capacity) _saReserve(SAHANDLE(handle), capacity, true) |
| #define | saShrink(handle, capacity) _saShrink(SAHANDLE(handle), capacity) |
| #define | saSetSize(handle, size) _saSetSize(SAHANDLE(handle), size) |
| #define | saClear(handle) _saClear(SAHANDLE(handle)) |
| #define | saPush(handle, type, elem, ...) _saPush(SAHANDLE(handle), stCheckedArg(type, elem), opt_flags(__VA_ARGS__)) |
| #define | saPushC(handle, type, elem, ...) |
| #define | saPopPtr(handle) _saPopPtr(SAHANDLE(handle), -1) |
| #define | saPopPtrI(handle, idx) _saPopPtr(SAHANDLE(handle), idx) |
| #define | saFind(ref, type, elem, ...) _saFindChecked(SAREF(ref), stCheckedArg(type, elem), opt_flags(__VA_ARGS__)) |
| #define | saFindRemove(handle, type, elem, ...) _saFindRemoveChecked(SAHANDLE(handle), stCheckedArg(type, elem), opt_flags(__VA_ARGS__)) |
| #define | saInsert(handle, idx, type, elem) _saInsertChecked(SAHANDLE(handle), idx, stCheckedArg(type, elem)) |
| #define | saExtract(handle, idx, type, elem_copy_out, ...) |
| #define | saRemove(handle, idx, ...) _saExtractChecked(SAHANDLE(handle), idx, stType(none), NULL, opt_flags(__VA_ARGS__)) |
| #define | saSort(handle, keep) _saSort(SAHANDLE(handle), keep) |
| #define | saSlice(out, src, start, end) _saSlice(SAHANDLE(out), SAREF(src), start, end) |
| #define | saClone(out, src) _saSlice(SAHANDLE(out), SAREF(src), 0, 0) |
| #define | saMerge(out, ...) |
| #define | saMergeF(out, flags, ...) |
Enumerations | |
| enum | SARRAY_CREATE_FLAGS_ENUM { SA_Ref = 0x0010 , SA_Sorted = 0x0020 , SA_AutoShrink = 0x0040 , SAINT_Extended = 0x8000 } |
| Creation flags for sarray initialization. More... | |
| enum | SARRAY_FUNC_FLAGS_ENUM { SA_Unique = 0x00010000 , SA_Fast = 0x00020000 , SA_Inexact = 0x00100000 , SAINT_Consume = 0x10000000 } |
| Operation flags for sarray functions. More... | |
Dynamic arrays with type-safe generic programming.
SArray (Sorted Array) provides dynamic arrays with runtime type system integration, optional sorting, and copy-on-write semantics for efficient memory management.
Definition in file sarray.h.