C, Type Systems, GLib, and API Design
spurint.org
spurint.org
Although GLib indeed has some rather weird design/taste.
> and why is it called gpointer?
An untyped pointer, exactly equivalent to void*.
The standard C void* type should usually be preferred in new code, but gpointer
can be used in contexts where a type name must be a single word, such as in the
GType name of G_TYPE_POINTER or when generating a family of function names for
multiple types using macros.
Hey, they do have type-generating facilities! They just don't use them to template their containers. It's a very, very old library, it predates C99.