5#include "meta/type/type.inl"
9#define TEMPL template <typename T, typename S>
10#define ME ttypeBase<T, S>
13 TEMPL ME::ttypeBase() { this->init(); }
15 TEMPL nbool ME::isTemplate()
const {
16 static nbool inner = tifTemplate<T>::is;
20 TEMPL nbool ME::isAbstract()
const {
21 static nbool inner = !std::is_constructible<T>::value;
25 TEMPL
void* ME::make()
const {
return tinstanceMaker<T>::make(); }
27 TEMPL ncnt ME::size()
const {
return sizeof(T); }
29 TEMPL
const type& ME::getSuper()
const {
return ttype<typename tadaptiveSuper<T>::super>::get(); }
31 TEMPL
const nbool& ME::isInit()
const {
32 static nbool inner =
typeid(T) ==
typeid(adam);
36 TEMPL
const ME& ME::get() {
37 static ME* inner =
nullptr;
39 inner =
new ME(
false);
46 TEMPL types& ME::_getSupers() {
51 TEMPL types& ME::_getSubs() {
56 TEMPL types** ME::_onGetLeafs()
const {
57 static types* inner =
nullptr;
61 TEMPL
void ME::_onAddSubClass(
const type& subClass) {
62 super::_onAddSubClass(subClass);
64 types** leafs = _onGetLeafs();
65 if(*leafs) this->_setLeafs(
nullptr);
68 TEMPL type& ME::_getStatic()
const {
return const_cast<ME&
>(get()); }
70 TEMPL
const std::string& ME::_getNativeName()
const {
71 static std::string inner = tnameGetter<T>::getName();
75 TEMPL ME::ttypeBase(nbool) {}