diff options
Diffstat (limited to 'lout/object.cc')
-rw-r--r-- | lout/object.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lout/object.cc b/lout/object.cc index 85a908b9..99b5902d 100644 --- a/lout/object.cc +++ b/lout/object.cc @@ -106,6 +106,30 @@ size_t Object::sizeOf() return sizeof(Object*); } +// ---------------- +// Comparable +// ---------------- + +/** + * \brief This static method may be used as compare function for + * qsort(3) and bsearch(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 // ------------- |