mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-29 08:56:15 +01:00
5ae6bcb728
It needs to be in a separate page because it’s all macros and they have no type/class associated with them. Signed-off-by: Philip Withnall <philip@tecnocode.co.uk> Helps: #3037
57 lines
1.8 KiB
Markdown
57 lines
1.8 KiB
Markdown
Title: Value Collection
|
||
SPDX-License-Identifier: LGPL-2.1-or-later
|
||
SPDX-FileCopyrightText: 2005 Matthias Clasen
|
||
|
||
# Value Collection
|
||
|
||
GLib provides a set of macros for the varargs parsing support needed
|
||
in variadic GObject functions such as [ctor@GObject.Object.new] or
|
||
[method@GObject.Object.set]
|
||
|
||
They currently support the collection of integral types, floating point
|
||
types and pointers.
|
||
|
||
## Macros
|
||
|
||
`G_VALUE_COLLECT_INIT(value, _value_type, var_args, flags, __error)`
|
||
|
||
: Collects a variable argument value from a `va_list`.
|
||
|
||
We have to implement the varargs collection as a macro, because on some
|
||
systems `va_list` variables cannot be passed by reference.
|
||
|
||
Since: 2.24
|
||
|
||
`G_VALUE_COLLECT_INIT2(value, g_vci_vtab, _value_type, var_args, flags, __error)`
|
||
|
||
: A variant of `G_VALUE_COLLECT_INIT` that provides the [struct@GObject.TypeValueTable]
|
||
to the caller.
|
||
|
||
Since: 2.74
|
||
|
||
`G_VALUE_COLLECT(value, var_args, flags, __error)`
|
||
|
||
: Collects a variable argument value from a `va_list`.
|
||
|
||
We have to implement the varargs collection as a macro, because on some systems
|
||
`va_list` variables cannot be passed by reference.
|
||
|
||
Note: If you are creating the `value argument` just before calling this macro,
|
||
you should use the `G_VALUE_COLLECT_INIT` variant and pass the uninitialized
|
||
`GValue`. That variant is faster than `G_VALUE_COLLECT`.
|
||
|
||
`G_VALUE_COLLECT_SKIP(_value_type, var_args)`
|
||
|
||
: Skip an argument of type `_value_type` from `var_args`.
|
||
|
||
`G_VALUE_LCOPY(value, var_args, flags, __error)`
|
||
|
||
: Stores a value’s value into one or more argument locations from a `va_list`.
|
||
|
||
This is the inverse of G_VALUE_COLLECT().
|
||
|
||
`G_VALUE_COLLECT_FORMAT_MAX_LENGTH`
|
||
|
||
: The maximal number of [type@GObject.TypeCValue]s which can be collected for a
|
||
single `GValue`.
|