Generic type access expression. More...
#include <getGenericExpr.hpp>
Protected Member Functions | |
| node * | _onGet (node &me) const override |
| Protected virtual method for resolving generic type access. | |
Protected Member Functions inherited from by::getExpr | |
| virtual node * | _onGet (node *it) const BY_SIDE_FUNC(it |
Protected Member Functions inherited from by::node | |
| virtual str | _onEvalSub (node &sub, const args &a) |
| Protected virtual method for evaluating a sub-node. | |
| void | _setSrc (const src *it) BY_SIDE_FUNC(_setSrc) |
Protected Member Functions inherited from by::instance | |
| nbool | _setId (id new1) |
Additional Inherited Members | |
Public Member Functions inherited from by::getExpr | |
| getExpr (const std::string &name) | |
| getExpr (const std::string &name, const args &a) | |
| getExpr (const node &me, const std::string &name) | |
| getExpr (const node &me, const std::string &name, const args &a) | |
| str | eval (const args &a) override |
| str | infer () const override |
| const node * | getMe () const |
| const std::string & | getName () const |
| void | setName (const std::string &new1) |
| void | setName (const std::string *it) BY_SIDE_FUNC(setName) void setMe(const node &new Me) |
| Sets the base object ("me") for this access expression. | |
| const args & | getArgs () const |
| void | setArgs (const args &new1) |
| void | onCloneDeep (const clonable &new1) override |
Public Member Functions inherited from by::expr | |
| scope & | subs () override |
| nbool | isImpli (const type &to) const override |
| priorType | prioritize (const args &a) const override |
| const src & | getSrc () const override |
Public Member Functions inherited from by::node | |
| me & | operator[] (const std::string &name) |
| const me & | operator[] (const std::string &name) const BY_CONST_FUNC(operator[](name)) |
| me & | operator[] (const std::string *it) |
| const me & | operator[] (const std::string *it) const BY_CONST_FUNC(operator[](it)) |
| me & | operator[] (const nchar *name) |
| const me & | operator[] (const nchar *name) const BY_CONST_FUNC(operator[](name)) |
| nbool | in (const node &elem) const |
| nbool | in (const node *elem) const |
| const scope & | subs () const BY_CONST_FUNC(subs()) virtual tstr< nbicontainer > mySubs() const |
| Returns a tstr to a container of immediate sub-nodes (excluding inherited or chained ones). | |
| const node * | promote (const node &it) const |
| const node * | promote (const node *it) const BY_SIDE_FUNC(promote) |
| template<typename T > | |
| T * | sub (std::function< nbool(const std::string &, const T &)> l) |
| template<typename T > | |
| const T * | sub (std::function< nbool(const std::string &, const T &)> l) const BY_CONST_FUNC(sub< T >(l)) template< typename T |
| template<typename T = me> | |
| const T * | sub () const BY_CONST_FUNC(sub< T >()) template< typename T |
| template<typename T = me> | |
| T * | sub (const std::string *it) BY_SIDE_FUNC(sub) |
| template<typename T = me> | |
| const T * | sub (const std::string &name) const BY_CONST_FUNC(sub< T >(name)) template< typename T |
| template<typename T = me> | |
| T * | sub (const std::string *name, const args &a) BY_SIDE_FUNC(name |
| template<typename T = me> | |
| const T * | sub (const std::string &name, const args &a) const BY_CONST_FUNC(sub< T >(name |
| template<typename T = me> | |
| const T a const T * | sub (const std::string *name, const args &a) const BY_CONST_FUNC(sub< T >(name |
| template<typename T > | |
| const T a const T a tnarr< T, strTactic > | subAll (std::function< nbool(const std::string &, const T &)> l) const |
| template<typename T = me> | |
| tnarr< T, strTactic > | subAll () const |
| template<typename T = me> | |
| tpriorities< T > | subAll (const std::string &name) const |
| template<typename T = me> | |
| tpriorities< T > | subAll (const std::string *it) const BY_SIDE_FUNC(subAll< T >) template< typename T |
| template<typename T = me> | |
| tpriorities< T > | subAll (const std::string &name, const args &a) const |
| template<typename T = me> | |
| tpriorities< T > | subAll (const std::string *name, const args *a) const BY_SIDE_FUNC(name |
| tpriorities< T > subAll< T > | tpriorities ()) |
| template<typename T = me> | |
| tpriorities< T > | subAll (const std::string *name, const args &a) const BY_SIDE_FUNC(name |
| tpriorities< T > subAll< T > | tpriorities ()) |
| bool | canEval (const args &a) const |
| priorType | prioritize (const args *it) const BY_SIDE_FUNC(it |
| str | eval (const args *it) BY_SIDE_FUNC(eval) |
| str | eval (const std::string &name, const args &a) |
| str | eval (const std::string &name, const args *a) BY_SIDE_FUNC(a |
| str | eval (name, a) |
| str | str ()) |
| str | eval (const std::string *name, const args &a) BY_SIDE_FUNC(name |
| str eval | str ()) |
| str | eval (const std::string *name, const args *a) BY_SIDE_FUNC(name &&a |
| str eval | str ()) |
| str | eval (const std::string &name) |
| str | eval (const std::string *it) BY_SIDE_FUNC(eval) |
| str | eval () |
| virtual void | rel () |
| template<typename T > | |
| nbool | is () const |
| nbool | is (const typeProvidable &to) const |
| nbool | is (const typeProvidable *it) const BY_SIDE_FUNC(is) |
| nbool | is (const type &to) const |
| nbool | is (const type *it) const BY_SIDE_FUNC(is) |
| template<typename T > | |
| tstr< T > | as () const |
| str | as (const typeProvidable &to) const |
| str | as (const typeProvidable *it) const BY_SIDE_FUNC(as) |
| str | as (const type &to) const |
| str | as (const type *it) const BY_SIDE_FUNC(as) |
| template<typename T > | |
| nbool | isImpli () const |
| nbool | isImpli (const typeProvidable &to) const |
| nbool | isImpli (const typeProvidable *it) const BY_SIDE_FUNC(isImpli) |
| template<typename T > | |
| tstr< T > | asImpli () const |
| virtual str | asImpli (const type &to) const |
| str | asImpli (const typeProvidable &to) const |
| str | asImpli (const typeProvidable *it) const BY_SIDE_FUNC(asImpli) |
| virtual nbool | isComplete () const |
| virtual void | accept (const visitInfo &i, visitor &v) |
| void | inFrame (const bicontainable *args) const override |
| void | outFrame () const override |
| virtual const modifier & | getModifier () const |
| virtual void | inFrame (const bicontainable *args) const=0 |
| void | inFrame () const |
| virtual void | outFrame () const=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 |
| Checks if this instance is allocated on the heap. | |
| const life * | getBindTag () const |
| Returns a pointer to the associated life object for reference counting. | |
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) |
| Safe cast to target type using type hierarchy information. | |
| 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) |
Public Member Functions inherited from by::frameInteractable | |
| void | inFrame () const |
Static Public Member Functions inherited from by::instance | |
| static vault & | getVault () |
Public Attributes inherited from by::node | |
| T sub | name |
| T sub | nullptr |
| tpriorities< T > subAll< T > | name |
| priorType prioritize | it |
| priorType prioritize | NO_MATCH |
| str eval | name |
Static Protected Member Functions inherited from by::instance | |
| static instancer * | _getMgr () |
Protected Attributes inherited from by::getExpr | |
| virtual node _onGet | it |
| virtual node _onGet | nullptr |
Protected Attributes inherited from by::expr | |
| tstr< src > | _src |
| point | _pos |
Generic type access expression.
Uses genericOrigin objects to create generic types.
genericOrigin lazily creates generic types using eval() with given type parameters. However, since they are created in advance by the verifier before program execution, they aren't actually created lazily.
Protected virtual method for resolving generic type access.
This method is responsible for instantiating or retrieving the appropriate generic type based on the base object and type parameters.
| me | The base object on which the generic type is being accessed. |
Reimplemented from by::getExpr.