Next: Wrapping Another Simple C Type, Previous: Wrapping a C Pointer Type, Up: G-Wrap's High-level API [Contents][Index]
Beside the generic wrapped C pointer type (WCT) and wrapped enumerate
type, G-Wrap comes with a standard wrapset that includes a
number of commonly used wrappers for C types (see Wrapsets). This
wrapset can be made available by using the (g-wrap ws standard)
module.
When creating a wrapset that depends on the wrapped types defined in
the standard wrapset, make sure you specify standard
among the
dependencies of you wrapset class as shown in See Wrapsets.
The table below summarizes the wrapped provided by the standard wrapset:
G-Wrap Name | C Name | Scheme Type |
---|---|---|
void | void | unspecified |
bool | int | boolean |
char | char | character |
float | float | inexact number |
double | double | inexact number |
size_t | size_t | exact number |
int | int | exact number |
unsigned-int | unsigned int | exact number |
mchars | char * | string |
scm | SCM | any Scheme type |
Similarly, other integer types not listed here are available (e.g.,
short
, unsigned-long-long
, etc.), as well as variants
with a specified ranged (e.g., int8
, unsigned-int32
,
etc.).
The type mchars
denotes strings, i.e., null-terminated
character arrays on the C side. Note that mchars
alone does
not specify any memory ownership semantics. Therefore, when wrapping
C functions that manipulate strings, you may in turn specify the
memory management semantics that are valid for this functions and the
strings it operates on. This is done by adding appropriate type
qualifiers to the string argument of the wrapped function, such as
caller-owned
(see Wrapping a C Function).
Next: Wrapping Another Simple C Type, Previous: Wrapping a C Pointer Type, Up: G-Wrap's High-level API [Contents][Index]