1#ifndef OBJECTTRACKER_HEADER
2#define OBJECTTRACKER_HEADER
3#include "../Containers/String.hpp"
4#include "../Containers/Map.hpp"
5#include "../Math/MathUtil.hpp"
15 std::string class_name =
typeid(T).name();
16 if(!objects.Contains(class_name))
18 objects.Add(class_name, 0);
21 objects[class_name]++;
27 std::string class_name =
typeid(T).name();
28 if (objects.Contains(class_name))
30 objects[class_name]--;
31 if (objects[class_name] == 0) objects.Remove(class_name);
41 for(
String& name : objects.GetKeys())
43 if (objects[name] != 0)
46 widest =
Max(widest, (
uint16)name.Length());
54 out += out_name +
" " +
ToString(objects[name]) +
"\n";
void Add(const T &object)
Definition Array.hpp:26
Definition ObjectTracker.hpp:10
String Report()
Definition ObjectTracker.hpp:35
void RemoveCount()
Definition ObjectTracker.hpp:25
void AddCount()
Definition ObjectTracker.hpp:13
void FillToWidth(uint32 width, char fill=' ')
Definition String.hpp:45
String ToString(T value)
Definition String.hpp:157
uint16_t uint16
Definition Primitives.hpp:9
T Max(T a, T b)
Definition MathUtil.hpp:26