3 #ifndef VISR_TYPED_PARAMETER_BASE_HPP_INCLUDED 4 #define VISR_TYPED_PARAMETER_BASE_HPP_INCLUDED 20 template<
typename ConcreteParameterType,
21 class ParameterConfigT,
23 class TypedParameterBase:
public ParameterBase
57 std::unique_ptr<ParameterBase>
clone() const final
59 return std::unique_ptr<ParameterBase>(
60 new ConcreteParameterType(static_cast<ConcreteParameterType const &>(*
this) ) );
70 ConcreteParameterType
const * rhsTyped =
dynamic_cast<ConcreteParameterType
const *
>(&rhs);
73 throw std::invalid_argument(
"Assign: Types are not compatible.");
85 #endif // #ifndef VISR_TYPED_PARAMETER_BASE_HPP_INCLUDED uint64_t ParameterType
Definition: parameter_type.hpp:13
ParameterType type() final
Definition: typed_parameter_base.hpp:49
std::unique_ptr< ParameterBase > clone() const final
Definition: typed_parameter_base.hpp:57
static const constexpr ParameterType staticType()
Definition: typed_parameter_base.hpp:41
TypedParameterBase()=default
Definition: interpolation_parameter.hpp:30
Definition: options.cpp:10
void assign(ParameterBase const &rhs) override
Definition: typed_parameter_base.hpp:68
virtual ~TypedParameterBase()=default
Definition: parameter_base.hpp:18