1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
/* 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
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&();
|