12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- /* ------------------------------------------------------------
- * Overloaded operator support
- * ------------------------------------------------------------ */
- #ifdef __cplusplus
- // operators supported in Octave, and the methods they are routed to
- // __brace__ a{args}
- // __brace_asgn__ a{args} = rhs
- // __paren__ a(args)
- // __paren_asgn__ a(args) = rhs
- // __str__ generates string rep
- // __not__ !a
- // __uplus__ +a
- // __uminus__ -a
- // __transpose__ a.'
- // __hermitian__ a'
- // __incr__ a++
- // __decr__ a--
- // __add__ a + b
- // __sub__ a - b
- // __mul__ a * b
- // __div__ a / b
- // __pow__ a ^ b
- // __ldiv__ a \ b
- // __lshift__ a << b
- // __rshift__ a >> b
- // __lt__ a < b
- // __le__ a <= b
- // __eq__ a == b
- // __ge__ a >= b
- // __gt__ a > b
- // __ne__ a != b
- // __el_mul__ a .* b
- // __el_div__ a ./ b
- // __el_pow__ a .^ b
- // __el_ldiv__ a .\ b
- // __el_and__ a & b
- // __el_or__ a | b
- // operators supported in C++, and the methods that route to them
- %rename(__add__) *::operator+;
- %rename(__add__) *::operator+();
- %rename(__add__) *::operator+() const;
- %rename(__sub__) *::operator-;
- %rename(__uminus__) *::operator-();
- %rename(__uminus__) *::operator-() const;
- %rename(__mul__) *::operator*;
- %rename(__div__) *::operator/;
- %rename(__mod__) *::operator%;
- %rename(__lshift__) *::operator<<;
- %rename(__rshift__) *::operator>>;
- %rename(__el_and__) *::operator&&;
- %rename(__el_or__) *::operator||;
- %rename(__xor__) *::operator^;
- %rename(__invert__) *::operator~;
- %rename(__lt__) *::operator<;
- %rename(__le__) *::operator<=;
- %rename(__gt__) *::operator>;
- %rename(__ge__) *::operator>=;
- %rename(__eq__) *::operator==;
- %rename(__ne__) *::operator!=;
- %rename(__not__) *::operator!;
- %rename(__incr__) *::operator++;
- %rename(__decr__) *::operator--;
- %rename(__paren__) *::operator();
- %rename(__brace__) *::operator[];
- // Ignored inplace operators
- %ignoreoperator(PLUSEQ) operator+=;
- %ignoreoperator(MINUSEQ) operator-=;
- %ignoreoperator(MULEQ) operator*=;
- %ignoreoperator(DIVEQ) operator/=;
- %ignoreoperator(MODEQ) operator%=;
- %ignoreoperator(LSHIFTEQ) operator<<=;
- %ignoreoperator(RSHIFTEQ) operator>>=;
- %ignoreoperator(ANDEQ) operator&=;
- %ignoreoperator(OREQ) operator|=;
- %ignoreoperator(XOREQ) operator^=;
- // Ignored operators
- %ignoreoperator(EQ) operator=;
- %ignoreoperator(ARROWSTAR) operator->*;
- #endif /* __cplusplus */
|