1/* ------------------------------------------------------------
2 * Overloaded operator support
3 * ------------------------------------------------------------ */
4
5#ifdef __cplusplus
6
7%rename(__add__)      *::operator+;
8%rename(__pos__)      *::operator+();
9%rename(__pos__)      *::operator+() const;
10%rename(__sub__)      *::operator-;
11%rename(__neg__)      *::operator-();
12%rename(__neg__)      *::operator-() const;
13%rename(__mul__)      *::operator*;
14%rename(__div__)      *::operator/;
15%rename(__mod__)      *::operator%;
16%rename(__lshift__)   *::operator<<;
17%rename(__rshift__)   *::operator>>;
18%rename(__and__)      *::operator&;
19%rename(__or__)       *::operator|;
20%rename(__xor__)      *::operator^;
21%rename(__invert__)   *::operator~;
22%rename(__lt__)       *::operator<;
23%rename(__le__)       *::operator<=;
24%rename(__gt__)       *::operator>;
25%rename(__ge__)       *::operator>=;
26%rename(__eq__)       *::operator==;
27
28/* Special cases */
29%rename(__call__)     *::operator();
30
31/* Ignored inplace operators */
32%ignoreoperator(NOTEQUAL)   operator!=;
33%ignoreoperator(PLUSEQ)     operator+=;
34%ignoreoperator(MINUSEQ)    operator-=;
35%ignoreoperator(MULEQ)      operator*=;
36%ignoreoperator(DIVEQ)      operator/=;
37%ignoreoperator(MODEQ)      operator%=;
38%ignoreoperator(LSHIFTEQ)   operator<<=;
39%ignoreoperator(RSHIFTEQ)   operator>>=;
40%ignoreoperator(ANDEQ)      operator&=;
41%ignoreoperator(OREQ)       operator|=;
42%ignoreoperator(XOREQ)      operator^=;
43
44/* Ignored operators */
45%ignoreoperator(LNOT)       operator!;
46%ignoreoperator(LAND)       operator&&;
47%ignoreoperator(LOR)        operator||;
48%ignoreoperator(EQ)         operator=;
49%ignoreoperator(PLUSPLUS)   operator++;
50%ignoreoperator(MINUSMINUS) operator--;
51%ignoreoperator(ARROWSTAR)  operator->*;
52%ignoreoperator(INDEX)      operator[];
53
54
55#endif /* __cplusplus */
56