Varargs Value Collection

Varargs Value Collection — Конвертация varargs в общие значения

Краткое описание

#include <glib-object.h> #include <gobject/gvaluecollector.h> union GTypeCValue; #define G_VALUE_COLLECT (value, var_args, flags, __error) #define G_VALUE_LCOPY (value, var_args, flags, __error) #define G_VALUE_COLLECT_FORMAT_MAX_LENGTH

Описание

Макросы в этом разделе обеспечивают анализ varargs необходимый в функциях с переменным количеством аргументов (variadic) GObject таких как g_object_new() или g_object_set(). Они в настоящее время поддерживают накопление целочисленных типов, типов с плавающей запятой и указателей.

Детали

union GTypeCValue

union GTypeCValue { gint v_int; glong v_long; gint64 v_int64; gdouble v_double; gpointer v_pointer; };

Объединение содержащее одно из накапливаемых значений.


G_VALUE_COLLECT()

#define G_VALUE_COLLECT(value, var_args, flags, __error)

Накапливает значения переменных аргументов из va_list. Мы должны реализовать varargs накопление как макрос, потому что в некоторых системах переменные va_list нельзя помещать с помощью ссылки.

value : расположение возвращаемой GValue. value должно быть инициализировано согласно накапливаемым типовым значениям
var_args : переменная va_list; может вычисляться многократно
flags : флаги которые помещаются в функцию collect_value() таблицы GTypeValueTable принадлежащей к value.
__error : gchar** переменная которая модифицируется для содержания g_new() распределяя сообщение об ошибке при неудачном выполнении

G_VALUE_LCOPY()

#define G_VALUE_LCOPY(value, var_args, flags, __error)

Накапливает значения переменных аргументов из va_list.

value : расположение возвращаемой GValue. value должно быть инициализировано согласно накапливаемым значениям типа
var_args : переменная va_list; может вычисляться многократно
flags : флаги которые помещаются в функцию lcopy_value() таблицы GTypeValueTable принадлежащей к value.
__error : gchar** переменные которые модифицируются для помещения g_new() распределяя сообщение об ошибке если выполнение не удалось

G_VALUE_COLLECT_FORMAT_MAX_LENGTH

#define G_VALUE_COLLECT_FORMAT_MAX_LENGTH (8)

Максимальное количество GTypeCValue которые могут быть накоплены для единственной GValue.

Смотрите также

GValueTable