libjmmcg
release_579_6_g8cffd
A C++ library containing an eclectic mix of useful, advanced components.
|
Hold the first node in the slist. More...
#include <intrusive.hpp>
Public Types | |
using | base_t = node_details_itf< LkT > |
using | base2_t = sp_counter_type< typename base_t::atomic_ctr_t::value_type, typename base_t::lock_traits > |
using | atomic_ctr_t = typename base2_t::atomic_ctr_t |
using | lock_traits = typename base_t::lock_traits |
![]() | |
using | base_t = sp_counter_itf_type< long > |
using | lock_traits = LkT |
using | atomic_ctr_t = base_t |
using | atomic_ptr_t = typename lock_traits::template atomic< node_details_itf * > |
![]() | |
typedef long | value_type |
typedef default_delete< sp_counter_itf_type > | deleter_t |
The default deletion method for objects that inherit from this intrusively-counted type, which is just heap-deletion, if the objects are heap-allocated. More... | |
![]() | |
using | base_t = sp_counter_itf_type< node_details_itf< LkT >::atomic_ctr_t::value_type > |
using | value_type = typename base_t::value_type |
using | atomic_ctr_t = LkT::template atomic_counter_type< value_type > |
using | lock_traits = node_details_itf< LkT >::lock_traits |
typedef default_delete< sp_counter_type > | deleter_t |
Make sure the correct object deletion mechanism is used. More... | |
Public Member Functions | |
constexpr | node_details () noexcept(true) FORCE_INLINE |
~node_details () noexcept(true)=default | |
void | operator= (node_details const &)=delete |
void | operator= (node_details &&)=delete |
tstring | to_string () const noexcept(false) FORCE_INLINE override |
![]() | |
virtual | ~node_details_itf () noexcept(true) FORCE_INLINE |
![]() | |
virtual | ~sp_counter_itf_type () |
virtual value_type | sp_count () const noexcept(true) |
virtual value_type | sp_acquire () noexcept(true) |
virtual bool | sp_release () noexcept(true) |
virtual bool | sp_noop_ctr () const noexcept(true) |
virtual bool __fastcall | operator< (const value_type) const noexcept(true) |
virtual bool __fastcall | operator> (const value_type) const noexcept(true) |
virtual bool __fastcall | operator>= (const value_type) const noexcept(true) |
constexpr bool FORCE_INLINE | operator== (const value_type v) const noexcept(true) |
virtual void | deleter () |
Call the correct deleter_t object to delete the object. More... | |
virtual tstring | sp_to_string () const noexcept(false) |
![]() | |
virtual | ~sp_counter_type () noexcept(true)=default |
void | deleter () override |
Call the correct deleter_t object to delete the object. More... | |
value_type | sp_count () const noexcept(true) override final |
atomic_ctr_t::value_type | sp_acquire () noexcept(true) override final |
bool | sp_release () noexcept(true) override final |
bool __fastcall | operator< (const value_type v) const noexcept(true) override |
bool __fastcall | operator> (const value_type v) const noexcept(true) override |
bool __fastcall | operator>= (const value_type v) const noexcept(true) override final |
tstring | sp_to_string () const noexcept(false) override final |
Hold the first node in the slist.
Definition at line 70 of file intrusive.hpp.
using jmmcg::LIBJMMCG_VER_NAMESPACE::intrusive::private_::node_details< LkT >::atomic_ctr_t = typename base2_t::atomic_ctr_t |
Definition at line 74 of file intrusive.hpp.
using jmmcg::LIBJMMCG_VER_NAMESPACE::intrusive::private_::node_details< LkT >::base2_t = sp_counter_type<typename base_t::atomic_ctr_t::value_type, typename base_t::lock_traits> |
Definition at line 73 of file intrusive.hpp.
using jmmcg::LIBJMMCG_VER_NAMESPACE::intrusive::private_::node_details< LkT >::base_t = node_details_itf<LkT> |
Definition at line 72 of file intrusive.hpp.
using jmmcg::LIBJMMCG_VER_NAMESPACE::intrusive::private_::node_details< LkT >::lock_traits = typename base_t::lock_traits |
Definition at line 75 of file intrusive.hpp.
|
inlineconstexprnoexcept |
Definition at line 77 of file intrusive.hpp.
|
defaultnoexcept |
|
delete |
|
delete |
|
inlineoverridevirtualnoexcept |
Reimplemented from jmmcg::LIBJMMCG_VER_NAMESPACE::intrusive::node_details_itf< LkT >.
Definition at line 84 of file intrusive.hpp.