#ifndef MATADOR_OBJECT_RESOLVER_FACTORY_HPP #define MATADOR_OBJECT_RESOLVER_FACTORY_HPP #include "matador/object/abstract_type_resolver_factory.hpp" #include "matador/object/object_resolver.hpp" namespace matador::object { class object_resolver_factory : public abstract_type_resolver_factory { public: template std::shared_ptr> resolver() { const auto res = acquire_resolver(std::type_index(typeid(Type))); if (!res) { return std::dynamic_pointer_cast>(res); } return std::dynamic_pointer_cast>(res); } }; } #endif //MATADOR_OBJECT_RESOLVER_FACTORY_HPP