There two forms of operator behaviours, either object behaviours or global behaviours. An object behaviour is implemented as a class method, and a global behaviour is implemented as a global function.
// Registering an object behaviour int &MyClass::operator[] (int index) { return internal_array[index]; } r = engine->RegisterObjectBehaviour("mytype", asBEHAVE_INDEX, "int &f(int)", asMETHOD(MyClass,operator[]), asCALL_THISCALL); assert( r >= 0 ); // Registering a global behaviour MyClass operator+(const MyClass &a, const MyClass &b) { MyClass res = a + b; return res; } r = engine->RegisterGlobalBehaviour(asBEHAVE_ADD, "mytype f(const mytype &in, const mytype &in)", asFUNCTIONPR(operator+, (const MyClass &, const MyClass &), MyClass), asCALL_CDECL); assert( r >= 0 );
You can find a complete list of behaviours here.