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