by::tstr< T, TACTIC > Class Template Reference

Strong reference smart pointer with strict type checking. More...

#include <tstr.hpp>

Inheritance diagram for by::tstr< T, TACTIC >:
by::tweak< T, strTactic > by::binder by::typeProvidable by::tbindable< instance >

Public Member Functions

 tstr (const type &subtype)
 
 tstr (const T &it)
 
 tstr (const T *it)
 
 tstr (const tmedium< T > &it)
 
 tstr (const binder &rhs)
 
 tstr (const me &rhs)
 
me & operator= (const me &rhs)=default
 
- Public Member Functions inherited from by::tweak< T, strTactic >
 tweak ()
 tweak:
 
 tweak (const type &subtype)
 
 tweak (const T &it)
 
 tweak (const T *it)
 
 tweak (const tmedium< T > &it)
 
 tweak (const me &rhs)
 
 tweak (const binder &rhs)
 
T * operator-> ()
 
const T * operator-> () const BY_CONST_FUNC(operator->()) const T &operator*() const BY_CONST_FUNC(operator*()) me &operator=(const binder &rhs)
 
T & operator* ()
 
me & operator= (const me &rhs)
 
T * get ()
 
const T *get() const BY_CONST_FUNC(get()) using super nbool bind (const T &new1)
 
- Public Member Functions inherited from by::binder
 binder (const type &type, bindTacticable &tactic)
 
 binder (const me &rhs)
 
instance * operator-> ()
 Dereference operator to access bound instance. More...
 
const instance * operator-> () const BY_CONST_FUNC(operator->()) instance &operator*()
 
const instance & operator* () const BY_CONST_FUNC(operator*()) me &operator
 
id getItsId () const
 
nbool isBind () const override
 
void rel () override
 
nbool canBind (const type &it) const override
 
nbool bind (const instance &it) override
 
instance * get ()
 
const instance * get () const BY_CONST_FUNC(get()) template< typename E > E *get()
 
template<typename E >
const E * get () const BY_CONST_FUNC(get< E >()) const type &getType() const override
 
void * cast (const type &to) override
 
nbool canBind (const T &it) const
 
nbool canBind (const T *it) const BY_SIDE_FUNC(canBind)
 
virtual nbool canBind (const type &it) const=0
 
nbool canBind (const type *it) const BY_SIDE_FUNC(canBind)
 
virtual nbool bind (const T &it)
 
nbool bind (const T *it)
 Bind to instance pointer. More...
 
template<typename T >
T * cast ()
 
template<typename T >
const T * cast () const BY_CONST_FUNC(cast< T >()) virtual void *cast(const type &to)
 
const void * cast (const type &to) const BY_CONST_FUNC(cast(to)) void *cast(const type *it) BY_SIDE_FUNC(cast)
 
- Public Member Functions inherited from by::typeProvidable
nbool operator== (const me &rhs) const
 
nbool operator!= (const me &rhs) const
 
virtual const type & getType () const =0
 
nbool isSub (const type &it) const
 
nbool isSub (const type *it) const BY_SIDE_FUNC(isSub)
 
nbool isSub (const me &it) const
 
nbool isSub (const me *it) const BY_SIDE_FUNC(isSub)
 
nbool isSuper (const type &it) const
 
nbool isSuper (const type *it) const BY_SIDE_FUNC(isSuper)
 
nbool isSuper (const me &it) const
 
nbool isSuper (const me *it) const BY_SIDE_FUNC(isSuper)
 
template<typename T >
nint isSub () const
 
template<typename T >
nint isSuper () const
 
template<typename T >
T * cast ()
 
template<typename T >
const T * cast () const BY_CONST_FUNC(cast< T >()) virtual void *cast(const type &to)
 
const void * cast (const type &to) const BY_CONST_FUNC(cast(to)) void *cast(const type *it) BY_SIDE_FUNC(cast)
 
- Public Member Functions inherited from by::tbindable< instance >
 operator nbool () const
 
nbool bind (const instance *it)
 Bind to instance pointer. More...
 
nbool canBind (const instance &it) const
 
nbool canBind (const instance *it) const BY_SIDE_FUNC(canBind)
 
nbool canBind (const type *it) const BY_SIDE_FUNC(canBind)
 

Friends

class ref
 

Additional Inherited Members

- Protected Member Functions inherited from by::binder
nbool _assign (const binder &rhs)
 
nbool _onSame (const typeProvidable &rhs) const override
 
bindTag * _getBindTag () const
 
- Protected Attributes inherited from by::binder
id _itsId
 
const type * _type
 
bindTacticable * _tactic
 

Detailed Description

template<typename T, typename TACTIC = strTactic>
class by::tstr< T, TACTIC >

Strong reference smart pointer with strict type checking.

Template-based strong reference binder with configurable memory management tactics. Provides type-safe access to instances with automatic lifetime management.

Constructor & Destructor Documentation

◆ tstr()

template<typename T , typename TACTIC = strTactic>
by::tstr< T, TACTIC >::tstr ( const type &  subtype)
Parameters
subTypesubType is should be sub type of 'T' or type 'T' will be used from base class.

The documentation for this class was generated from the following file: