Maipa's Standard Library Extension 1.5.6
mstd
Loading...
Searching...
No Matches
mstd::base_id_manager< IdT > Class Template Reference

#include <id_manager.hpp>

Inheritance diagram for mstd::base_id_manager< IdT >:
[legend]
Collaboration diagram for mstd::base_id_manager< IdT >:
[legend]

Public Types

using id_type = IdT

Public Member Functions

_MSTD_CONSTEXPR20 base_id_manager () noexcept=default
_MSTD_CONSTEXPR20 base_id_manager (const base_id_manager &other) noexcept=default
_MSTD_CONSTEXPR20 base_id_manager (base_id_manager &&other) noexcept=default
_MSTD_CONSTEXPR20 ~base_id_manager () noexcept=default
_MSTD_CONSTEXPR20 base_id_manageroperator= (const base_id_manager &other) noexcept=default
_MSTD_CONSTEXPR20 base_id_manageroperator= (base_id_manager &&other) noexcept=default
_MSTD_CONSTEXPR20 id_type get_next_id ()
_MSTD_CONSTEXPR20 bool return_id (id_type id)
_MSTD_CONSTEXPR20 void reset () noexcept

Static Public Member Functions

static _MSTD_CONSTEXPR20 id_type bad_id () noexcept
static _MSTD_CONSTEXPR20 id_type last_id () noexcept

Static Public Attributes

static _MSTD_CONSTEXPR17 id_type max_ids = std::numeric_limits<id_type>::max()

Private Member Functions

_MSTD_CONSTEXPR20 void _update_removed_ids ()

Private Attributes

id_type _nextId = 0
std::set< id_type_removedIds = {}

Member Typedef Documentation

◆ id_type

template<unsigned_integral IdT>
using mstd::base_id_manager< IdT >::id_type = IdT

Constructor & Destructor Documentation

◆ base_id_manager() [1/3]

template<unsigned_integral IdT>
_MSTD_CONSTEXPR20 mstd::base_id_manager< IdT >::base_id_manager ( )
defaultnoexcept

◆ base_id_manager() [2/3]

template<unsigned_integral IdT>
_MSTD_CONSTEXPR20 mstd::base_id_manager< IdT >::base_id_manager ( const base_id_manager< IdT > & other)
defaultnoexcept

◆ base_id_manager() [3/3]

template<unsigned_integral IdT>
_MSTD_CONSTEXPR20 mstd::base_id_manager< IdT >::base_id_manager ( base_id_manager< IdT > && other)
defaultnoexcept

◆ ~base_id_manager()

template<unsigned_integral IdT>
_MSTD_CONSTEXPR20 mstd::base_id_manager< IdT >::~base_id_manager ( )
defaultnoexcept

Member Function Documentation

◆ _update_removed_ids()

template<unsigned_integral IdT>
_MSTD_CONSTEXPR20 void mstd::base_id_manager< IdT >::_update_removed_ids ( )
inlineprivate

◆ bad_id()

template<unsigned_integral IdT>
_MSTD_CONSTEXPR20 id_type mstd::base_id_manager< IdT >::bad_id ( )
inlinestaticnodiscardnoexcept

◆ get_next_id()

template<unsigned_integral IdT>
_MSTD_CONSTEXPR20 id_type mstd::base_id_manager< IdT >::get_next_id ( )
inlinenodiscard

◆ last_id()

template<unsigned_integral IdT>
_MSTD_CONSTEXPR20 id_type mstd::base_id_manager< IdT >::last_id ( )
inlinestaticnodiscardnoexcept

◆ operator=() [1/2]

template<unsigned_integral IdT>
_MSTD_CONSTEXPR20 base_id_manager & mstd::base_id_manager< IdT >::operator= ( base_id_manager< IdT > && other)
defaultnoexcept

◆ operator=() [2/2]

template<unsigned_integral IdT>
_MSTD_CONSTEXPR20 base_id_manager & mstd::base_id_manager< IdT >::operator= ( const base_id_manager< IdT > & other)
defaultnoexcept

◆ reset()

template<unsigned_integral IdT>
_MSTD_CONSTEXPR20 void mstd::base_id_manager< IdT >::reset ( )
inlinenoexcept

◆ return_id()

template<unsigned_integral IdT>
_MSTD_CONSTEXPR20 bool mstd::base_id_manager< IdT >::return_id ( id_type id)
inline

Member Data Documentation

◆ _nextId

template<unsigned_integral IdT>
id_type mstd::base_id_manager< IdT >::_nextId = 0
private

◆ _removedIds

template<unsigned_integral IdT>
std::set<id_type> mstd::base_id_manager< IdT >::_removedIds = {}
private

◆ max_ids

template<unsigned_integral IdT>
_MSTD_CONSTEXPR17 id_type mstd::base_id_manager< IdT >::max_ids = std::numeric_limits<id_type>::max()
static