represents native c++ type system for byeol language 더 자세히 ...
#include <ntype.hpp>
Public 멤버 함수 | |
| nbool | operator== (const type &rhs) const override |
| check whether two ntype are same in both of native and byeol runtime environments | |
| template<typename T > | |
| nbool | isImpli () const |
| whether variable 'it' can be a subtype of T in runtime | |
| virtual nbool | isImpli (const type &to) const |
| nbool | isImpli (const type *it) const BY_SIDE_FUNC(isImpli) |
| nbool | isImpli (const typeProvidable &to) const |
| nbool | isImpli (const typeProvidable *it) const BY_SIDE_FUNC(isImpli) |
| template<typename T > | |
| tstr< T > | asImpli (const node &it) const |
| template<typename T > | |
| tstr< T > | asImpli (const node *it) const BY_SIDE_FUNC(asImpli< T >) |
| virtual str | asImpli (const node &from, const type &to) const |
| str | asImpli (const node &from, const type *to) const BY_SIDE_FUNC(to |
| str | asImpli (from, *to) |
| str | str ()) |
| str | asImpli (const node *from, const type &to) const BY_SIDE_FUNC(from |
| str asImpli | str ()) |
| str | asImpli (const node *from, const type *to) const BY_SIDE_FUNC(from &&to |
| str asImpli | str ()) |
| virtual nbool | isCustom () const |
| template<typename T > | |
| nbool | is () const |
| nbool | is (const type &to) const |
| nbool | is (const type *it) const BY_SIDE_FUNC(is) |
| template<typename T > | |
| tstr< T > | as (const node &it) const |
| template<typename T > | |
| tstr< T > | as (const node *it) const BY_SIDE_FUNC(as< T >) |
| str | as (const node &from, const type &to) const |
| str | as (const node &from, const type *to) const BY_SIDE_FUNC(to |
| str | as (from, *to) |
| str | str ()) |
| str | as (const node *from, const type &to) const BY_SIDE_FUNC(from |
| str as | str ()) |
| virtual str | as (const node *from, const type *to) const BY_SIDE_FUNC(from &&to |
| virtual str as | str ()) |
| virtual nbool | isImmutable () const |
| Checks if this type is immutable. | |
| nbool | isSameSign (const type &rhs) const |
| const ntype * | promote (const ntype &r) const |
| const ntype * | promote (const ntype *it) const BY_SIDE_FUNC(promote) |
| const ntype * | promote (const typeProvidable &r) const |
| const ntype * | promote (const typeProvidable *it) const BY_SIDE_FUNC(promote) |
| template<typename T > | |
| const ntype * | promote () const |
| static const ntype | promote (l, *r) |
| const params & | getParams () const BY_CONST_FUNC(getParams()) virtual params &getParams() |
| Retrieves a non-const reference to the parameters associated with this type. | |
| virtual const node * | getRet () const |
| virtual void | setRet (const node &new1) |
| void | setRet (const node *it) BY_SIDE_FUNC(setRet) |
| std::string | createNameWithParams () const |
| const nchar * | getMetaTypeName () const override |
정적 Public 멤버 함수 | |
| static const ntype * | promote (const ntype &l, const ntype &r) |
| static const ntype * | promote (const ntype &l, const ntype *r) BY_SIDE_FUNC(r |
| static const ntype * | promote (const ntype *l, const ntype &r) BY_SIDE_FUNC(l |
| static const ntype * | promote (const ntype *l, const ntype *r) BY_SIDE_FUNC(l &&r |
Public 속성 | |
| str asImpli | from |
| str as | from |
| virtual str as | from |
| static const ntype | nullptr |
| static const ntype promote | l |
| static const ntype promote | nullptr |
정적 Public 속성 | |
| static const std::string | META_TYPENAME = "ntype" |
Protected 멤버 함수 | |
| virtual const impliAses & | _getImpliAses () const |
| virtual const ases & | _getAses () const |
represents native c++ type system for byeol language
Core type class that provides type information, type conversion, and type deduction. Supports implicit/explicit casting, type compatibility checking, and parameter management. ntype stands for native type, representing meta-type information for C++ classes. mgdType stands for managed type, representing meta-type information for types defined in the Byeol language (such as functions or objects).
One important note: Although mgdType inherits from ntype in terms of implementation, this inheritance relationship does not apply at the type level when represented as type. In other words, when inheritance hierarchies such as getSupers() or getSubs() are represented, their contents can include both ntype and mgdType instances. mgdType::getSupers() is not restricted to containing only mgdType entries.
The name of an mgdType corresponds to the type name as defined in the Byeol language, while an ntype corresponds to the C++ class name.
Retrieves a non-const reference to the parameters associated with this type.
params object, allowing modification of the type's parameters. Checks if this type is immutable.
Immutable types (like scalars) are treated differently in memory management and pass-by-value semantics.
operator==() compares type equality in the native runtime(C++) environment — it returns true if both objects are of the same class. In contrast, isSameSign() compares type equality in the byeol runtime environment.
check whether two ntype are same in both of native and byeol runtime environments
mgdType inherits ntype, so this operator==() is also able to checks equality in managed code.