1 /* ------------------------------------------------------------ 2 * Overloaded operator support 3 * ------------------------------------------------------------ */ 4 5 #ifdef __cplusplus 6 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-=; 28 29 // These are renamed, but no test exists in operator_overload_runme.pl 30 %ignoreoperator(EQ) operator=; 31 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(); 38 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[]; 52 53 54 #endif /* __cplusplus */ 55