etl/docs/utilities/instance-count.md
2026-05-19 12:12:14 +01:00

55 lines
973 B
Markdown

---
title: "instance_count"
---
{{< callout type="info">}}
Header: `instance_count.h`
{{< /callout >}}
Inherit from this class to count instances of a class.
Before: `20.25.0`
```cpp
etl::instance_count<typename T>
```
This class is not thread safe.
From: `20.25.0`
```cpp
etl::instance_count<typename T, typename TCounter = uint32_t>
```
This class is thread safe if `TCounter` is an *atomic* type.
## Types
`type`
The type being counted.
`counter_type`
The type used for the counter.
## Member functions
```cpp
static const counter_type& get_instance_count()
```
**Description**
Returns a const reference to the current count.
---
```cpp
static void reset_instance_count()
```
**Description**
Resets the count to zero.
## Example
Instances of `My_Class` will be counted and can be accessed by the inherited member function `get_instance_count()`.
```cpp
class My_Class : public etl::instance_count<My_Class, std::atomic_uint8_t>
{
};
```