by::tbaseConvergence< T > Class Template Reference
Inheritance diagram for by::tbaseConvergence< T >:
by::baseConvergence by::instance by::typeProvidable by::clonable

Public Member Functions

 tbaseConvergence (baseObj &obj, baseFunc &func, onConverge closure)
 
nbool converge () override
 
baseFuncgetFunc ()
 
const baseFuncgetFunc () const BY_CONST_FUNC(getFunc())
 
baseObjgetObj ()
 
const baseObjgetObj () const BY_CONST_FUNC(getObj())
 
- Public Member Functions inherited from by::baseConvergence
virtual nbool convergeWithoutFrame ()=0
 
- Public Member Functions inherited from by::instance
 instance (id newId)
 
 instance (const me &rhs)
 
me & operator= (const me &rhs)=default
 
void * operator new (size_t sz) noexcept
 
void operator delete (void *pt, size_t sz) noexcept
 
virtual id getId () const
 
virtual nbool isHeap () const
 
const bindTaggetBindTag () const
 
- Public Member Functions inherited from by::typeProvidable
nbool operator== (const me &rhs) const
 
nbool operator!= (const me &rhs) const
 
virtual const typegetType () 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::clonable
virtual me * clone () const =0
 
virtual me * cloneDeep () const
 
virtual void onCloneDeep (const me &from)
 

Protected Types

using onConverge = typename ConvergenceClosure< T >::is
 

Protected Member Functions

onConverge _getClosure ()
 
- Protected Member Functions inherited from by::instance
nbool _setId (id new1)
 

Additional Inherited Members

- Static Protected Member Functions inherited from by::instance
static instancer_getMgr ()
 

Member Function Documentation

◆ converge()

template<typename T >
nbool by::tbaseConvergence< T >::converge ( )
inlineoverridevirtual

converge type to real obj type. parser registered all obj in some obj. and expander is now visiting all object's sub nodes while interaction frames. in spite of that, getEval() of origin has been failed. which means, the origin, actually getExpr holding for a name, is refering variable not expanded yet.

I need to replace 'getExpr(<name>)' type to proper real origin obj. if I don't do that, before on every try to access parameters or return type of a func, user must interacts proper scope of it to the frame. it's very tedious and redundant job.

this requests of type convergence will be done when expand() done successfully.

Returns
true if type has been converged successfully.

Implements by::baseConvergence.


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