Ocular Engine
StringRegistrar.hpp
1 
17 #pragma once
18 #ifndef __H__OCULAR_CORE_UTILS_STRING_REGISTRAR__H__
19 #define __H__OCULAR_CORE_UTILS_STRING_REGISTRAR__H__
20 
21 #include "OcularEngine.hpp"
22 
23 //------------------------------------------------------------------------------------------
24 
29 namespace Ocular
30 {
35  namespace Utils
36  {
37  template<typename T>
39  {
40  public:
41 
42  ToStringRegistrar(std::function<std::string(void*, bool)> func)
43  {
44  OcularString->registerToString<T>(func);
45  }
46  };
47 
48  template<typename T>
50  {
51  public:
52 
53  FromStringRegistrar(std::function<void(std::string const&, void*)> func)
54  {
55  OcularString->registerFromString<T>(func);
56  }
57  };
58  }
62 }
78 #define OCULAR_REGISTER_TO_STRING(X,Y) const Ocular::Utils::ToStringRegistrar<X> OCULAR_INTERNAL_ToStringRegister(Y)
79 
91 #define OCULAR_REGISTER_FROM_STRING(X,Y) const Ocular::Utils::FromStringRegistrar<X> OCULAR_INTERNAL_FromStringRegister(Y)
92 
102 #define OCULAR_TO_STRING_LAMBDA [](void* raw, bool isPointer)->std::string
103 
113 #define OCULAR_FROM_STRING_LAMBDA [](std::string const& str, void* out)
114 
115 //------------------------------------------------------------------------------------------
116 
117 #endif
Definition: StringRegistrar.hpp:49
Note: Once this library is made dynamic, this will no longer be needed.
Definition: Common.hpp:70
Definition: StringRegistrar.hpp:38