fedora-csb-system-manager
 1#name : class ... { ... }
 2# --
 3/**
 4 * @brief Summary
 5 *
 6 * Description.
 7 */
 8class $1
 9{
10  $0
11
12public:
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