Mjolnir Core
Core functionality of the Mjolnir API
memory_test_classes.h
Go to the documentation of this file.
1 
7 
8 #pragma once
9 
10 
11 // === DECLARATIONS ===================================================================================================
12 
13 
15 
16 
17 namespace mjolnir
18 {
21 
22 
24 constexpr UST struct_alignment = 32;
25 
26 
32 struct alignas(struct_alignment) AlignedStruct
33 {
35  I64 m_member_a = 0;
36  I64 m_member_b = 0;
38 };
39 
40 
48 {
49 public:
51  DestructionTester() = delete;
52  DestructionTester(const DestructionTester&) = default;
53  DestructionTester(DestructionTester&&) noexcept = default;
54  auto operator=(const DestructionTester&) -> DestructionTester& = delete;
55  auto operator=(DestructionTester&&) noexcept -> DestructionTester& = delete;
57 
63  explicit DestructionTester(UST& destruction_count);
64 
71 
72 private:
73  UST& m_destruction_count;
74 };
75 
77 } // namespace mjolnir
78 
79 
80 // === DEFINITIONS ====================================================================================================
81 
82 
83 namespace mjolnir
84 {
85 // --------------------------------------------------------------------------------------------------------------------
86 
87 inline DestructionTester::DestructionTester(UST& destruction_count) : m_destruction_count{destruction_count}
88 {
89 }
90 
91 
92 // --------------------------------------------------------------------------------------------------------------------
93 
95 {
96  ++m_destruction_count;
97 };
98 
99 } // namespace mjolnir
DestructionTester(UST &destruction_count)
Constructor.
Definition: memory_test_classes.h:87
~DestructionTester()
Destructor.
Definition: memory_test_classes.h:94
Class that increases an external counter variable during destruction.
Definition: memory_test_classes.h:48
Defines the fundamental data types.
std::size_t UST
Unsigned integer type that is returned by sizeof operations.
Definition: fundamental_types.h:29
std::int64_t I64
64 bit signed integer type
Definition: fundamental_types.h:23
constexpr UST struct_alignment
Alignment requirement of the AlignedStruct
Definition: memory_test_classes.h:24
Struct that is smaller in size than its alignment requirement.
Definition: memory_test_classes.h:33