GCC Code Coverage Report


Directory: codebase/
File: codebase/system/include/private/sys.NonCopyable.hpp
Date: 2023-03-16 04:37:09
Exec Total Coverage
Lines: 4 4 100.0%
Functions: 2 2 100.0%
Branches: 1 2 50.0%

Line Branch Exec Source
1 /**
2 * @file sys.NonCopyable.hpp
3 * @author Sergey Baigudin, sergey@baigudin.software
4 * @copyright 2021-2022, Sergey Baigudin, Baigudin Software
5 */
6 #ifndef SYS_NONCOPYABLE_HPP_
7 #define SYS_NONCOPYABLE_HPP_
8
9 #include "sys.Object.hpp"
10
11 namespace eoos
12 {
13 namespace sys
14 {
15
16 /**
17 * @class NonCopyable
18 * @brief Root class of the operating system for objects which cannot be copied.
19 */
20 class NonCopyable : public Object
21 {
22 typedef Object Parent;
23
24 public:
25
26 /**
27 * @brief Constructor.
28 */
29 1022 NonCopyable()
30 1022 : Object() {
31 1022 }
32
33 /**
34 * @brief Destructor.
35 */
36
1/2
✓ Branch 1 taken 1021 times.
✗ Branch 2 not taken.
2042 virtual ~NonCopyable() {}
37
38 private:
39
40 /**
41 * @copydoc eoos::Object::Object(Object const&)
42 */
43 NonCopyable(NonCopyable const&); ///< SCA MISRA-C++:2008 Justified Rule 3-2-2 and Rule 3-2-4
44
45 /**
46 * @copydoc eoos::Object::operator=(Object const&)
47 */
48 NonCopyable& operator=(NonCopyable const&); ///< SCA MISRA-C++:2008 Justified Rule 3-2-2 and Rule 3-2-4
49
50 #if EOOS_CPP_STANDARD >= 2011
51
52 /**
53 * @copydoc eoos::Object::Object(Object&&)
54 */
55 NonCopyable(NonCopyable&&) noexcept = delete;
56
57 /**
58 * @copydoc eoos::Object::operator=(Object&&)
59 */
60 NonCopyable& operator=(NonCopyable&&) noexcept = delete;
61
62 #endif // EOOS_CPP_STANDARD >= 2011
63
64 };
65
66 } // namespace sys
67 } // namespace eoos
68 #endif // SYS_NONCOPYABLE_HPP_
69