1 /* ------------------------------------------------------------
2 * Overloaded operator support
3 * ------------------------------------------------------------ */
7 // operators supported in Octave, and the methods they are routed to
10 // __brace_asgn__ a{args} = rhs
12 // __paren_asgn__ a(args) = rhs
13 // __str__ generates string rep
43 // operators supported in C++, and the methods that route to them
45 %rename(__add__) *::operator+;
46 %rename(__add__) *::operator+();
47 %rename(__add__) *::operator+() const;
48 %rename(__sub__) *::operator-;
49 %rename(__uminus__) *::operator-();
50 %rename(__uminus__) *::operator-() const;
51 %rename(__mul__) *::operator*;
52 %rename(__div__) *::operator/;
53 %rename(__mod__) *::operator%;
54 %rename(__lshift__) *::operator<<;
55 %rename(__rshift__) *::operator>>;
56 %rename(__el_and__) *::operator&&;
57 %rename(__el_or__) *::operator||;
58 %rename(__xor__) *::operator^;
59 %rename(__invert__) *::operator~;
60 %rename(__lt__) *::operator<;
61 %rename(__le__) *::operator<=;
62 %rename(__gt__) *::operator>;
63 %rename(__ge__) *::operator>=;
64 %rename(__eq__) *::operator==;
65 %rename(__ne__) *::operator!=;
66 %rename(__not__) *::operator!;
67 %rename(__incr__) *::operator++;
68 %rename(__decr__) *::operator--;
69 %rename(__paren__) *::operator();
70 %rename(__brace__) *::operator[];
72 // Ignored inplace operators
73 %ignoreoperator(PLUSEQ) operator+=;
74 %ignoreoperator(MINUSEQ) operator-=;
75 %ignoreoperator(MULEQ) operator*=;
76 %ignoreoperator(DIVEQ) operator/=;
77 %ignoreoperator(MODEQ) operator%=;
78 %ignoreoperator(LSHIFTEQ) operator<<=;
79 %ignoreoperator(RSHIFTEQ) operator>>=;
80 %ignoreoperator(ANDEQ) operator&=;
81 %ignoreoperator(OREQ) operator|=;
82 %ignoreoperator(XOREQ) operator^=;
85 %ignoreoperator(EQ) operator=;
86 %ignoreoperator(ARROWSTAR) operator->*;
88 #endif /* __cplusplus */