diff --git a/include/fc/reflect/typename.hpp b/include/fc/reflect/typename.hpp index ca514c9..a7d3503 100644 --- a/include/fc/reflect/typename.hpp +++ b/include/fc/reflect/typename.hpp @@ -1,6 +1,10 @@ #pragma once #include +#include #include +#include +#include + namespace fc { class value; class exception; @@ -31,6 +35,27 @@ namespace fc { return n.c_str(); } }; + template struct get_typename> + { + static const char* name() { + static std::string n = std::string("flat_set<") + get_typename::name() + ">"; + return n.c_str(); + } + }; + template struct get_typename> + { + static const char* name() { + static std::string n = std::string("optional<") + get_typename::name() + ">"; + return n.c_str(); + } + }; + template struct get_typename> + { + static const char* name() { + static std::string n = std::string("std::map<") + get_typename::name() + ","+get_typename::name()+">"; + return n.c_str(); + } + }; struct signed_int; struct unsigned_int;