SPARK  0.1.0
A general purpose game engine written in C++.
Loading...
Searching...
No Matches
RttiDatabase.h
1#pragma once
2
3#include "spark/rtti/details/Rtti.h"
4
5namespace spark::rtti
6{
7 template <typename Type, typename... BaseTypes>
8 Rtti<Type, BaseTypes...>& RttiDatabase::get()
9 {
10 constexpr auto class_name_array = details::GetClassName<Type>::exec();
11 const std::string class_name(class_name_array.data(), class_name_array.size());
12
13 auto& storage = dataStorage();
14 if (!storage.contains(class_name))
15 storage.insert_or_assign(class_name, std::make_unique<Rtti<Type, BaseTypes...>>(class_name));
16
17 return *static_cast<Rtti<Type, BaseTypes...>*>(storage.at(class_name).get());
18 }
19}
Definition RttiDatabase.h:11