#include "gvalue.h"
#include "gvaluecollector.h"
#include "gbsearcharray.h"
-#include "gobjectalias.h"
/**
* SECTION:generic_values
- *
- * @Short_description: A polymorphic type that can hold values of any
- * other type
- *
- * @See_also: The fundamental types which all support #GValue
- * operations and thus can be used as a type initializer for
- * g_value_init() are defined by a separate interface. See the <link
- * linkend="gobject-Standard-Parameter-and-Value-Types">Standard
- * Values API</link> for details.
- *
- * @Title: Generic values
+ * @short_description: A polymorphic type that can hold values of any
+ * other type
+ * @see_also: The fundamental types which all support #GValue
+ * operations and thus can be used as a type initializer for
+ * g_value_init() are defined by a separate interface. See the <link
+ * linkend="gobject-Standard-Parameter-and-Value-Types">Standard
+ * Values API</link> for details.
+ * @title: Generic values
*
* The #GValue structure is basically a variable container that consists
* of a type identifier and a specific value of that type.
* by the #GTypeValueTable associated with the type ID stored in the #GValue.
* Other #GValue operations (such as converting values between types) are
* provided by this interface.
+ *
+ * The code in the example program below demonstrates #GValue's
+ * features.
+ *
+ * |[
+ * #include <glib-object.h>
+ *
+ * static void
+ * int2string (const GValue *src_value,
+ * GValue *dest_value)
+ * {
+ * if (g_value_get_int (src_value) == 42)
+ * g_value_set_static_string (dest_value, "An important number");
+ * else
+ * g_value_set_static_string (dest_value, "What's that?");
+ * }
+ *
+ * int
+ * main (int argc,
+ * char *argv[])
+ * {
+ * /* GValues must start zero-filled */
+ * GValue a = {0};
+ * GValue b = {0};
+ * const gchar *message;
+ *
+ * g_type_init ();
+ *
+ * /* The GValue starts empty */
+ * g_assert (!G_VALUE_HOLDS_STRING (&a));
+ *
+ * /* Put a string in it */
+ * g_value_init (&a, G_TYPE_STRING);
+ * g_assert (G_VALUE_HOLDS_STRING (&a));
+ * g_value_set_static_string (&a, "Hello, world!");
+ * g_printf ("%s\n", g_value_get_string (&a));
+ *
+ * /* Reset it to its pristine state */
+ * g_value_unset (&a);
+ *
+ * /* It can then be reused for another type */
+ * g_value_init (&a, G_TYPE_INT);
+ * g_value_set_int (&a, 42);
+ *
+ * /* Attempt to transform it into a GValue of type STRING */
+ * g_value_init (&b, G_TYPE_STRING);
+ *
+ * /* An INT is transformable to a STRING */
+ * g_assert (g_value_type_transformable (G_TYPE_INT, G_TYPE_STRING));
+ *
+ * g_value_transform (&a, &b);
+ * g_printf ("%s\n", g_value_get_string (&b));
+ *
+ * /* Attempt to transform it again using a custom transform function */
+ * g_value_register_transform_func (G_TYPE_INT, G_TYPE_STRING, int2string);
+ * g_value_transform (&a, &b);
+ * g_printf ("%s\n", g_value_get_string (&b));
+ * return 0;
+ * }
+ * ]|
*/
static GBSearchConfig transform_bconfig = {
sizeof (TransformEntry),
transform_entries_cmp,
- 0,
+ G_BSEARCH_ARRAY_ALIGN_POWER2,
};
}
return FALSE;
}
-
-#define __G_VALUE_C__
-#include "gobjectaliasdef.c"