28 #ifndef SPLA_TTYPE_HPP
29 #define SPLA_TTYPE_HPP
57 static ref_ptr<Type> make_type(std::string name, std::string code, std::string cpp, std::string desc,
int id);
101 t->m_name = std::move(name);
102 t->m_code = std::move(code);
103 t->m_cpp = std::move(cpp);
104 t->m_desc = std::move(desc);
105 t->m_size =
static_cast<int>(
sizeof(T));
107 return t.template as<Type>();
112 assert(
false &&
"not supported type");
121 ref_ptr<TType<T_INT>> get_ttype() {
122 return INT.cast_safe<TType<T_INT>>();
125 ref_ptr<TType<T_UINT>> get_ttype() {
126 return UINT.cast_safe<TType<T_UINT>>();
129 ref_ptr<TType<T_FLOAT>> get_ttype() {
130 return FLOAT.cast_safe<TType<T_FLOAT>>();
Type interface implementation with actual type info bound.
Definition: ttype.hpp:47
SPLA_API ~TType() override=default
Type representation for parametrisation of containers stored values.
Definition: type.hpp:46
Automates reference counting and behaves as shared smart pointer.
Definition: ref.hpp:117
#define SPLA_API
Definition: config.hpp:43
SPLA_API const std::string & get_name() override
Definition: ttype.hpp:69
SPLA_API const std::string & get_description() override
Definition: ttype.hpp:84
SPLA_API int get_size() override
Definition: ttype.hpp:89
SPLA_API int get_id() override
Definition: ttype.hpp:94
static ref_ptr< Type > make_type(std::string name, std::string code, std::string cpp, std::string desc, int id)
Definition: ttype.hpp:99
SPLA_API const std::string & get_code() override
Definition: ttype.hpp:74
SPLA_API const std::string & get_cpp() override
Definition: ttype.hpp:79
ref_ptr< Type > BOOL
Definition: type.cpp:32
ref_ptr< Type > INT
Definition: type.cpp:33
ref_ptr< Type > FLOAT
Definition: type.cpp:35
ref_ptr< Type > UINT
Definition: type.cpp:34
Definition: algorithm.hpp:37