| /* A collection of all the different known operator prototypes in C++ */ |
| |
| // arithmetic operators |
| Type1 operator + (const Type1& a); // +a |
| Type1 operator + (const Type1& a, const Type2& b); // a + b |
| Type1& operator ++ (Type1& a); // ++a |
| Type1 operator ++ (Type1& a, int); // a++ |
| Type1& operator += (Type1& a, const Type1& b); // a += b |
| Type1 operator - (const Type1& a); // -a |
| Type1& operator -- (Type1& a); // --a |
| Type1 operator -- (Type1& a, int); // a-- |
| Type1& operator -= (Type1& a, const Type1& b); // a -= b |
| Type1 operator * (const Type1& a, const Type1& b); // a * b |
| Type1& operator *= (Type1& a, const Type1& b); // a *= b |
| Type1 operator / (const Type1& a, const Type1& b); // a / b |
| Type1& operator /= (Type1& a, const Type1& b); // a /= b |
| Type1 operator % (const Type1& a, const Type1& b); // a % b |
| Type1& operator %= (Type1& a, const Type1& b); // a %= b |
| |
| // comparison operators |
| bool operator < (const Type1& a, const Type1& b); // a < b |
| bool operator <= (const Type1& a, const Type1& b); // a <= b |
| bool operator > (const Type1& a, const Type1& b); // a > b |
| bool operator >= (const Type1& a, const Type1& b); // a >= b |
| bool operator != (const Type1& a, const Type1& b); // a != b |
| bool operator == (const Type1& a, const Type1& b); // a == b |
| |
| // logical operators |
| bool operator ! (const Type1& a); // !a |
| bool operator && (const Type1& a, const Type1& b); // a && b |
| bool operator || (const Type1& a, const Type1& b); // a || b |
| |
| // bitwise operators |
| Type1 operator << (const Type1& a, const Type1& b); // a << b |
| Type1& operator <<= (Type1& a, const Type1& b); // a <<= b |
| Type1 operator >> (const Type1& a, const Type1& b); // a >> b |
| Type1& operator >>= (Type1& a, const Type1& b); // a >>= b |
| Type1 operator ~ (const Type1& a); // ~a |
| Type1 operator & (const Type1& a, const Type1& b); // a & b |
| Type1& operator &= (Type1& a, const Type1& b); // a &= b |
| Type1 operator | (const Type1& a, const Type1& b); // a | b |
| Type1& operator |= (Type1& a, const Type1& b); // a |= b |
| Type1 operator ^ (const Type1& a, const Type1& b); // a ^ b |
| Type1& operator ^= (Type1& a, const Type1& b); // a ^= b |
| |
| // other operators |
| Type1& Type1::operator = (const Type1& b); // a = b |
| void operator () (Type1& a); // a() |
| const Type2& operator [] (const Type1& a, const Type1& b); // a[b] |
| Type2& operator * (const Type1& a); // *a |
| Type2* operator & (const Type1& a); // &a |
| Type2* Type1::operator -> (); // a->b |
| Type1::operator type (); // (type)a |
| Type2& operator , (const Type1& a, Type2& b); // a, b |
| void *Type1::operator new (size_t x); // new Type1 |
| void *Type1::operator new[] (size_t x); // new Type1[n] |
| void *Type1::operator delete (size_t x); // delete a |
| void *Type1::operator delete[] (size_t x); // delete [] a |
| |
| // Misc examples |
| int& operator * (); |
| Foo::operator const char * (); |
| Foo::operator const Bar& (); |
| |