1 /* ------------------------------------------------------------
2 * Overloaded operator support
3 * ------------------------------------------------------------ */
7 // These are auto-supported by the Perl-module
8 %rename(__plusplus__) *::operator++;
9 %rename(__minmin__) *::operator--;
10 %rename(__add__) *::operator+;
11 %rename(__sub__) *::operator-;
12 %rename(__neg__) *::operator-();
13 %rename(__neg__) *::operator-() const;
14 %rename(__mul__) *::operator*;
15 %rename(__div__) *::operator/;
16 %rename(__eq__) *::operator==;
17 %rename(__ne__) *::operator!=;
18 %rename(__mod__) *::operator%;
19 %rename(__gt__) *::operator>;
20 %rename(__lt__) *::operator<;
21 %rename(__not__) *::operator!;
22 %rename(__le__) *::operator<=;
23 %rename(__ge__) *::operator>=;
24 %rename(__and__) *::operator&;
25 %rename(__or__) *::operator|;
26 %rename(__iadd__) *::operator+=;
27 %rename(__isub__) *::operator-=;
29 // These are renamed, but no test exists in operator_overload_runme.pl
30 %ignoreoperator(EQ) operator=;
32 // These are renamed, but no 'use overload...' is added
33 %rename(__lshift__) *::operator<<;
34 %rename(__rshift__) *::operator>>;
35 %rename(__xor__) *::operator^;
36 %rename(__invert__) *::operator~;
37 %rename(__call__) *::operator();
39 /* Ignored operators */
40 %ignoreoperator(LAND) operator&&;
41 %ignoreoperator(LOR) operator||;
42 %ignoreoperator(MULEQ) operator*=;
43 %ignoreoperator(DIVEQ) operator/=;
44 %ignoreoperator(MODEQ) operator%=;
45 %ignoreoperator(LSHIFTEQ) operator<<=;
46 %ignoreoperator(RSHIFTEQ) operator>>=;
47 %ignoreoperator(ANDEQ) operator&=;
48 %ignoreoperator(OREQ) operator|=;
49 %ignoreoperator(XOREQ) operator^=;
50 %ignoreoperator(ARROWSTAR) operator->*;
51 %ignoreoperator(INDEX) operator[];
54 #endif /* __cplusplus */