23 virtual std::shared_ptr < abstraction::OperationAbstraction >
getAbstraction ( )
const = 0;
30 template <
class Param >
31 class EntryImpl :
public Entry {
33 EntryImpl ( ) =
default;
35 std::shared_ptr < abstraction::OperationAbstraction >
getAbstraction ( )
const override;
43 template <
class ParamType >
45 std::string param = ext::to_string < ParamType > ( );
51 template <
class ParamType >
53 registerStringWriter ( std::move ( param ), std::unique_ptr < Entry > (
new EntryImpl < ParamType > ( ) ) );
56 template <
class ParamType >
58 std::string param = ext::to_string < ParamType > ( );
59 registerStringWriter < ParamType > ( std::move ( param ) );
62 static std::shared_ptr < abstraction::OperationAbstraction >
getAbstraction (
const std::string & param );
71template <
class Param >
72std::shared_ptr < abstraction::OperationAbstraction > StringWriterRegistry::EntryImpl < Param >::getAbstraction ( )
const {
73 return std::make_shared < abstraction::StringWriterAbstraction < const Param & > > ( );
Definition: StringWriterRegistry.hpp:21
virtual std::shared_ptr< abstraction::OperationAbstraction > getAbstraction() const =0
Definition: StringWriterRegistry.hpp:19
static void registerStringWriter(std::string param)
Definition: StringWriterRegistry.hpp:52
static void unregisterStringWriter()
Definition: StringWriterRegistry.hpp:44
static std::shared_ptr< abstraction::OperationAbstraction > getAbstraction(const std::string ¶m)
Definition: StringWriterRegistry.cpp:27
static void registerStringWriter()
Definition: StringWriterRegistry.hpp:57
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