Оглавление

Вспомогательные функции

Путь: /sdk/add_on/scripthelper/

Эти вспомогательные функции могут использоваться для решения повседневных задач.

Public C++ interface

// Сравнение отношений между 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);

Пример

Для сравнения 2-х объектов необходимо запустить следующий код:
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;
  }
}

Перевод - arroy.one@gmail.com. При копировании материалов указывайте ссылку на источник.