#include <cassert>
#include <memory>
Go to the source code of this file.
 | 
| #define  | define_operator_rrr(parm0,  parm1,  parm2,  opname,  function) | 
|   | 
| #define  | define_operator_rr_(parm0,  parm1,  parm2,  opname,  function) | 
|   | 
| #define  | define_operator_r_r(parm0,  parm1,  parm2,  opname,  function) | 
|   | 
| #define  | define_operator__r_(parm0,  parm1,  parm2,  opname,  function) | 
|   | 
| #define  | define_function_from_inplace(parm0,  parm1,  parm2,  function) | 
|   | 
| #define  | assert(expr,  msg)   if (!(expr)) assert (msg); | 
|   | 
| #define  | NOREFCOUNT | 
|   | 
 | 
| template<class R >  | 
| R &  | mmx::rep (R &r) | 
|   | 
| template<class R >  | 
| const R &  | mmx::rep (const R &r) | 
|   | 
| template<class R >  | 
| R &  | mmx::rep (shared_object< R > &r) | 
|   | 
| template<class R >  | 
| const R &  | mmx::rep (const shared_object< R > &r) | 
|   | 
      
        
          | #define assert | 
          ( | 
            | 
          expr,  | 
        
        
           | 
           | 
            | 
          msg  | 
        
        
           | 
          ) | 
           |    if (!(expr)) assert (msg); | 
        
      
 
 
      
        
          | #define define_function_from_inplace | 
          ( | 
            | 
          parm0,  | 
        
        
           | 
           | 
            | 
          parm1,  | 
        
        
           | 
           | 
            | 
          parm2,  | 
        
        
           | 
           | 
            | 
          function  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Value:inline                                                          \
void function(parm0& r, const parm1& x, const parm2& y) {   \
  r=x;function(r,y);                                            \
}
 
 
 
      
        
          | #define define_operator__r_ | 
          ( | 
            | 
          parm0,  | 
        
        
           | 
           | 
            | 
          parm1,  | 
        
        
           | 
           | 
            | 
          parm2,  | 
        
        
           | 
           | 
            | 
          opname,  | 
        
        
           | 
           | 
            | 
          function  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Value:inline                                                          \
parm0 opname(const parm1& x, const parm2& y) {              \
  parm0 r; function(r,x.rep(),y); return r;         \
}
 
 
 
      
        
          | #define define_operator_r_r | 
          ( | 
            | 
          parm0,  | 
        
        
           | 
           | 
            | 
          parm1,  | 
        
        
           | 
           | 
            | 
          parm2,  | 
        
        
           | 
           | 
            | 
          opname,  | 
        
        
           | 
           | 
            | 
          function  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Value:inline                                                          \
parm0 opname(const parm1& x, const parm2& y) {              \
  parm0 r; function(r.rep(),x,y.rep()); return r;               \
}
 
 
 
      
        
          | #define define_operator_rr_ | 
          ( | 
            | 
          parm0,  | 
        
        
           | 
           | 
            | 
          parm1,  | 
        
        
           | 
           | 
            | 
          parm2,  | 
        
        
           | 
           | 
            | 
          opname,  | 
        
        
           | 
           | 
            | 
          function  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Value:inline                                                          \
parm0 opname(const parm1& x, const parm2& y) {              \
  parm0 r; function(r.rep(),x.rep(),y); return r;           \
}
 
 
 
      
        
          | #define define_operator_rrr | 
          ( | 
            | 
          parm0,  | 
        
        
           | 
           | 
            | 
          parm1,  | 
        
        
           | 
           | 
            | 
          parm2,  | 
        
        
           | 
           | 
            | 
          opname,  | 
        
        
           | 
           | 
            | 
          function  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Value:inline parm0                                                    \
opname(const parm1& x, const parm2& y) {                \
  parm0 r; function(r.rep(),x.rep(),y.rep()); return r;         \
}