#ifndef ID_GENERATOR_HPP
#define ID_GENERATOR_HPP

#include <atomic>
#include <type_traits>

template <typename T>
uint64_t next_id() {
    static std::atomic<uint64_t> counter{0};
    return counter++;
}

#endif // ID_GENERATOR_HPP