Add a warning logger which is used when exceptions don't make sense. This is usually the case for classes which should (but don't need to) be in a certain state during destruction. For example the memory systems should be deinitialized before destruction.
This logger should probably be a singleton and there should be macros like for the exceptions which can deactivate the logger if it is not needed. The warnings should be printed during destruction of the class.
Use different types of Warning which can be disabled (Performance, Uninitialized etc.)
Add logging (if class is finished):
[ ] In destructors of all memory allocation systems to check if it is deinitialized
[ ] In destructor of memory stack deallocation helper class to make sure that the instance returned by the memory stack is stored in a variable. Otherwise the class is destroyed immediately and does not free memory as expected when the current scope is left. To do so, just check if the memory stacks number of allocations and the current pointer are equal to the values during construction of the helper class.
Add a warning logger which is used when exceptions don't make sense. This is usually the case for classes which should (but don't need to) be in a certain state during destruction. For example the memory systems should be deinitialized before destruction.
This logger should probably be a singleton and there should be macros like for the exceptions which can deactivate the logger if it is not needed. The warnings should be printed during destruction of the class. Use different types of Warning which can be disabled (Performance, Uninitialized etc.)
Add logging (if class is finished):