Loading...
Searching...
No Matches
ttypeBase.hpp
Go to the documentation of this file.
1
2#pragma once
3
4#include "meta/rtti.hpp"
5#include "meta/type/type.hpp"
6
7namespace by {
8
20 typedef ttypeBase<T, S> _T;
21 BY_ME(_T, S)
22
23 public:
24 ttypeBase();
25
26 public:
27 nbool isTemplate() const override;
28 nbool isAbstract() const override;
29 void* make() const override;
30 ncnt size() const override;
31 const type& getSuper() const override;
32 const nbool& isInit() const override;
33 static const me& get();
34
35 protected:
36 types& _getSupers() override;
37 types& _getSubs() override;
38 type& _getStatic() const override;
39 types** _onGetLeafs() const override;
40 void _onAddSubClass(const type& subClass) override;
41 const std::string& _getNativeName() const override;
42
43 private:
44 ttypeBase(nbool); // for skipping recursive static variable init.
45 };
46
47 template <> class ttypeBase<void, type>: public type {
49 BY_ME(_T, type)
50
51 public:
52 ttypeBase();
53
54 public:
55 nbool isTemplate() const override;
56 nbool isAbstract() const override;
57
58 void* make() const override;
59 ncnt size() const override;
60 const type& getSuper() const override;
61
62 const nbool& isInit() const override;
63
64 static const me& get();
65
66 protected:
67 types& _getSupers() override;
68 types& _getSubs() override;
69 type& _getStatic() const override;
70 types** _onGetLeafs() const override;
71 void _onAddSubClass(const type& subClass) override;
72 const std::string& _getNativeName() const override;
73
74 private:
76 };
77} // namespace by
Definition ttypeBase.hpp:47
void * make() const override
create an instance to be refered this type.
Base class for template type metadata.
Definition ttypeBase.hpp:19
Core class for runtime type information in byeol language.
Definition type.hpp:100
Rich logging support with polymorphic type conversion.
Definition richLog.hpp:34