18 template <
typename T,
typename TACTIC>
friend class tweak;
19 template <
typename T,
typename TACTIC>
friend class tstr;
32 const instance* operator->()
const BY_CONST_FUNC(operator->())
33 const instance&
operator*()
const BY_CONST_FUNC(
operator*())
36 const chunk* getChunk()
const;
37 ncnt getStrongCnt()
const;
40 nbool isBind()
const override;
41 const type& getBindable()
const;
44 const instance* get()
const BY_CONST_FUNC(get())
46 template <
typename E> E* get() {
return get()
TO(
template cast<E>()); }
47 template <
typename E>
const E* get()
const BY_CONST_FUNC(get<E>())
50 nbool canBind(
const type& cls)
const override;
53 nbool bind(
const instance& new1)
override;
58 const type& getType()
const override;
59 static const bindTag* getBindTag(
id newId);
63 nbool _onStrong(ncnt vote);
Binding tag for instance reference tracking and lifecycle management.
Definition: bindTag.hpp:15
Memory chunk for block-based allocation.
Definition: chunk.hpp:12
Base class for all managed instances in memlite system.
Definition: instance.hpp:20
Strong reference binding tactic.
Definition: strTactic.hpp:12
Template interface for bindable objects.
Definition: tbindable.hpp:12
Strong reference smart pointer with strict type checking.
Definition: tstr.hpp:13
Weak reference smart pointer with type-safe access.
Definition: tweak.hpp:15
Base class for runtime type information in byeol language.
Definition: type.hpp:12
Interface for objects that can provide their type information.
Definition: typeProvidable.hpp:12
Weak reference binding tactic.
Definition: weakTactic.hpp:13
#define TO(fn)
Definition: to.hpp:171