|
CX Framework
Cross-platform C utility framework
|
Variant type containers and type-safe variadic argument support. More...
Go to the source code of this file.
Data Structures | |
| struct | stvlist |
Macros | |
| #define | stvarInit(typen, val) { .data = { .st_##typen = val }, .type = stType(typen) } |
| #define | stvar(typen, val) ((stvar) { .data = stArg(typen, val), .type = stType(typen) }) |
| #define | stvNone ((stvar) { .type = stType(none) }) |
| #define | stvarIs(svar, type) _stvarIs(svar, stType(type)) |
| #define | stvarObj(class, svar) (objDynCast(class, stvarObjInst(svar))) |
| #define | stvlInitSA(list, vararray) _stvlInitSA(list, (vararray).a) |
| #define | stvlNext(list, type, pvar) _stvlNext(list, stCheckedPtrArg(type, pvar)) |
| #define | stvlNextPtr(list) _stvlNextPtr(list, stType(ptr)) |
| #define | stvlNextObj(list, class) objDynCast(class, (ObjInst*)_stvlNextPtr(list, stType(object))) |
Typedefs | |
| typedef struct stvlist | stvlist |
Functions | |
| void | stvarDestroy (stvar *stv) |
| void | stvarCopy (stvar *dvar, stvar svar) |
| string | stvarString (stvar *svar) |
| string * | stvarStringPtr (stvar *svar) |
| ObjInst * | stvarObjInst (stvar *svar) |
| ObjInst ** | stvarObjInstPtr (stvar *svar) |
| void | stvlInit (stvlist *list, int count, stvar *vars) |
| void | stvlRewind (stvlist *list) |
Variant type containers and type-safe variadic argument support.
Definition in file stvar.h.