PageRenderTime 22ms CodeModel.GetById 14ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/trunk/Lib/perl5/perlopers.swg

#
Unknown | 54 lines | 47 code | 7 blank | 0 comment | 0 complexity | 953fa733ca1f3f02c641619ac24e90f7 MD5 | raw file
 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 */