Hi Magnus,
Magnus Therning wrote:
What function should I use to sort a list of strings to avoid the
compiler warning I get with strcmp:
...
my_list.sort( strcmp );
...
Test.vala:60: warning: passing argument 2 of ‘g_list_sort’ from
incompatible pointer type
/usr/include/glib-2.0/glib/glist.h:101: note: expected ‘GCompareFunc’
but argument is of type ‘int (*)(const char *, const char *)’
You have to explicitly cast it to CompareFunc. Indeed, the GLib.strcmp
is just a convenience binding around stdlib's strcmp, and they appear to
not have the exact same signatures. IIRC those are:
int strcmp (void* a, void* b)
gint GCompareFunc (gconstpointer, gconstpointer)
However, I would suggest you to use libgee-0.5 which is expected to be
(finally) released on Monday September 29, 2009 (or master from git).
Gee.List<G>.sort uses an efficient TimSort algorithm, and for free you get:
* transparent uses of standard compare funcs for primitive, string and
object types
* possibility to make your classes inherit Comparable<G>
* rid of equal functions at List construction time for primitive,
string and object types
Best regards, Didier.
_______________________________________________
Vala-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/vala-list