diff options
Diffstat (limited to 'lout/object.cc')
-rw-r--r-- | lout/object.cc | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/lout/object.cc b/lout/object.cc index 85a908b9..059564c0 100644 --- a/lout/object.cc +++ b/lout/object.cc @@ -106,6 +106,29 @@ size_t Object::sizeOf() return sizeof(Object*); } +// ---------------- +// Comparable +// ---------------- + +/** + * \brief This static method may be used as compare function for qsort(3), for + * an array of Object* (Object*[] or Object**). + */ +int Comparable::compareFun(const void *p1, const void *p2) +{ + Comparable *c1 = *(Comparable**)p1; + Comparable *c2 = *(Comparable**)p2; + + if (c1 && c2) + return ((c1)->compareTo(c2)); + else if (c1) + return 1; + else if (c2) + return -1; + else + return 0; +} + // ------------- // Pointer // ------------- |