11#include <ext/typeinfo>
24 template <
class Param >
25 class EntryImpl :
public Entry {
27 EntryImpl ( ) =
default;
29 std::shared_ptr < abstraction::OperationAbstraction >
getAbstraction ( )
const override;
37 template <
class ParamType >
39 std::string param = ext::to_string < ParamType > ( );
45 template <
class ParamType >
47 registerValuePrinter ( std::move ( param ), std::unique_ptr < Entry > (
new EntryImpl < ParamType > ( ) ) );
50 template <
class ParamType >
52 std::string param = ext::to_string < ParamType > ( );
53 registerValuePrinter < ParamType > ( std::move ( param ) );
56 static std::shared_ptr < abstraction::OperationAbstraction >
getAbstraction (
const std::string & param );
65template <
class Param >
66std::shared_ptr < abstraction::OperationAbstraction > ValuePrinterRegistry::EntryImpl < Param >::getAbstraction ( )
const {
67 return std::make_shared < abstraction::ValuePrinterAbstraction < const Param & > > ( );
71std::shared_ptr < abstraction::OperationAbstraction > ValuePrinterRegistry::EntryImpl < void >::getAbstraction ( )
const;
Definition: BaseRegistryEntry.hpp:12
Definition: ValuePrinterRegistry.hpp:20
Definition: ValuePrinterRegistry.hpp:18
static std::shared_ptr< abstraction::OperationAbstraction > getAbstraction(const std::string ¶m)
Definition: ValuePrinterRegistry.cpp:15
static void registerValuePrinter(std::string param)
Definition: ValuePrinterRegistry.hpp:46
static void registerValuePrinter()
Definition: ValuePrinterRegistry.hpp:51
static void unregisterValuePrinter()
Definition: ValuePrinterRegistry.hpp:38
Class extending the map class from the standard library. Original reason is to allow printing of the ...
Definition: map.hpp:48
Definition: AlgorithmAbstraction.hpp:11