Shkyera Engine
Easy to use, game engine for Python
Loading...
Searching...
No Matches
InstanceCounter.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <atomic>
4
5#include <Common/Profiler.hpp>
6
7namespace shkyera {
8
9template <typename ObjectType>
11 public:
12 static inline std::atomic<size_t> Instantiated = 0;
13 static inline std::atomic<size_t> Alive = 0;
14 static inline std::atomic<size_t> Moved = 0;
15 static inline std::atomic<size_t> Copied = 0;
18 ++Alive;
19 }
20
25
30
32 ++Copied;
33 return *this;
34 }
35
37 ++Moved;
38 return *this;
39 }
40
41 protected:
43};
44
45} // namespace shkyera
Definition Asset.hpp:6
Definition Clock.hpp:9
Definition InstanceCounter.hpp:10
InstanceCounter(const InstanceCounter &)
Definition InstanceCounter.hpp:21
static std::atomic< size_t > Moved
Definition InstanceCounter.hpp:14
~InstanceCounter()
Definition InstanceCounter.hpp:42
InstanceCounter()
Definition InstanceCounter.hpp:16
InstanceCounter & operator=(const InstanceCounter &)
Definition InstanceCounter.hpp:31
InstanceCounter & operator=(InstanceCounter &&) noexcept
Definition InstanceCounter.hpp:36
static std::atomic< size_t > Instantiated
Definition InstanceCounter.hpp:12
static std::atomic< size_t > Alive
Definition InstanceCounter.hpp:13
InstanceCounter(InstanceCounter &&) noexcept
Definition InstanceCounter.hpp:26
static std::atomic< size_t > Copied
Definition InstanceCounter.hpp:15