/* * PrimitiveRegistrator.cpp * * Created on: 11. 7. 2017 * Author: Jan Travnicek */ #include <registry/CastRegistry.hpp> #include <registry/ValuePrinterRegistry.hpp> #include <registry/ImmediateRegistry.hpp> #include <registry/ContainerRegistry.hpp> #include <object/Object.h> namespace { class PrimitiveRegistrator { public: PrimitiveRegistrator ( ) { abstraction::CastRegistry::registerCast < double, int > ( ); abstraction::CastRegistry::registerCast < int, double > ( ); abstraction::CastRegistry::registerCastAlgorithm < std::string, int > ( ext::to_string ); abstraction::CastRegistry::registerCastAlgorithm < int, std::string > ( static_cast < int ( * ) ( const std::string & ) > ( ext::from_string < int > ) ); abstraction::CastRegistry::registerCast < bool, int > ( ); abstraction::CastRegistry::registerCastAlgorithm < bool, std::string > ( static_cast < bool ( * ) ( const std::string & ) > ( ext::from_string < bool > ) ); abstraction::CastRegistry::registerCastAlgorithm < unsigned, std::string > ( "unsigned", ext::to_string < std::string > ( ), static_cast < unsigned ( * ) ( const std::string & ) > ( ext::from_string < unsigned > ) ); abstraction::CastRegistry::registerCastAlgorithm < double, std::string > ( static_cast < double ( * ) ( const std::string & ) > ( ext::from_string < double > ) ); abstraction::CastRegistry::registerCast < size_t, int > ( "size_t", ext::to_string < int > ( ) ); abstraction::CastRegistry::registerCast < size_t, int > ( ); abstraction::CastRegistry::registerCast < int, size_t > ( ); abstraction::CastRegistry::registerCast < unsigned, int > ( ); abstraction::CastRegistry::registerCast < long, int > ( "long", ext::to_string < int > ( ) ); abstraction::ContainerRegistry::registerSet < int > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < int > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < unsigned > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < double > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < std::string > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < void > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < bool > ( ); abstraction::ImmediateRegistry::registerImmediate < int > ( ); abstraction::ImmediateRegistry::registerImmediate < std::string > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < object::Object > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < ext::set < object::Object > > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < ext::set < unsigned > > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < ext::vector < object::Object > > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < ext::vector < unsigned > > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < ext::vector < ext::pair < object::Object, object::Object > > > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < ext::pair < ext::vector < object::Object >, double > > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < ext::pair < ext::vector < object::Object >, int > > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < ext::pair < ext::vector < object::Object >, long > > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < ext::pair < ext::vector < ext::pair < object::Object, object::Object > >, double > > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < ext::pair < ext::vector < ext::pair < object::Object, object::Object > >, int > > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < ext::pair < ext::vector < ext::pair < object::Object, object::Object > >, long > > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < ext::map < object::Object, ext::map < object::Object, double > > > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < ext::map < object::Object, ext::map < object::Object, int > > > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < ext::map < object::Object, ext::map < object::Object, long > > > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < ext::map < ext::pair < object::Object, object::Object >, ext::map < ext::pair < object::Object, object::Object >, double > > > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < ext::map < ext::pair < object::Object, object::Object >, ext::map < ext::pair < object::Object, object::Object >, int > > > ( ); abstraction::ValuePrinterRegistry::registerValuePrinter < ext::map < ext::pair < object::Object, object::Object >, ext::map < ext::pair < object::Object, object::Object >, long > > > ( ); abstraction::ContainerRegistry::registerSet < object::Object > ( ); } }; auto primitiveRegistrator = PrimitiveRegistrator ( ); } /* namespace */