Эти вспомогательные функции могут использоваться для решения повседневных задач.
// Сравнение отношений между 2-мя объектами одного типа. // Возвращает отрицательное значение если сравнение не может быть выполнено. int CompareRelation(asIScriptEngine *engine, void *leftObj, void *rightObj, int typeId, int &result); // Сравнение равенства между двумя объектами одного типа. // Возвращает отрицательное значение если сравнение не может быть выполнено. int CompareEquality(asIScriptEngine *engine, void *leftObj, void *rightObj, int typeId, bool &result);
void Compare(asIScriptObject *a, asIScriptObject *b) { asIScriptEngine *engine = a->GetEngine(); int typeId = a->GetTypeId(); int cmp; int r = CompareRelation(engine, a, b, typeId, cmp); if( r < 0 ) { cout << "Отношения между a и b не могут быть установлены" << endl; } else { if( cmp < 0 ) cout << "a меньше b" << endl; else if( cmp == 0 ) cout << "a равно b" << endl; else cout << "a больше b" << endl; } }