home

My NixOS systems configurations.
Log | Files | Refs | LICENSE

class (1040B)


      1 #name : class ... { ... }
      2 # --
      3 /**
      4  * @brief Summary
      5  *
      6  * Description.
      7  */
      8 class $1
      9 {
     10   $0
     11 
     12 public:
     13   /** @name Construction and Destruction
     14       @{ */
     15 
     16   $1() noexcept? {
     17     TRACE_CTOR($1, "");
     18   }
     19 
     20 #if defined(DEBUG_MODE)
     21   virtual? ~$1() {
     22     try {
     23       TRACE_DTOR($1);
     24     }
     25     catch (...) {
     26       std::terminate();
     27     }
     28   }
     29 #else
     30   ~$1() = default|delete;
     31 #endif
     32 
     33   /*@}*/
     34 
     35   /** @name Assignment, Copy and Move
     36       @{*/
     37 
     38 #if defined(DEBUG_MODE)
     39   $1(const $1& rhs) noexcept? {
     40     TRACE_CTOR($1, "copy");
     41     *this = rhs;
     42   }
     43 #else
     44   $1(const $1&) = default|delete;
     45 #endif
     46 
     47   $1& operator=(const $1&) = default|delete;
     48   $1& operator=(const $1& rhs) noexcept? {
     49     //if (this != &rhs) {
     50     //}
     51     return *this;
     52   }
     53 
     54 #if defined(DEBUG_MODE)
     55   $1($1&&r rhs) noexcept? {
     56     TRACE_CTOR($1, "move");
     57     *this = rhs;
     58   }
     59 #else
     60   $1($1&&r) = default|delete;
     61 #endif
     62 
     63   $1& operator=($1&&r) = default|delete;
     64   $1& operator=($1&&r rhs) noexcept? {
     65     //if (this != &rhs) {
     66     //}
     67     return *this;
     68   }
     69 
     70   /*@}*/
     71 }; // class $1