15 #ifndef BORNAGAIN_CORE_PARAMETRIZATION_IPARAMETER_H
16 #define BORNAGAIN_CORE_PARAMETRIZATION_IPARAMETER_H
32 IParameter(
const std::string& name, T* data,
const std::string& parent_name,
33 const std::function<
void()>& onChange);
63 const std::function<
void()>& onChange)
64 : m_name(name), m_data(data), m_parent_name(parent_name), m_onChange(onChange)
67 throw std::runtime_error(
"Attempt to construct an IParameter with null data pointer");
74 return &getData() == &other.
getData();
Pure virtual base class for parameter wrapper classes RealParameter, ComponentParameter.
const std::string & getName() const
virtual ~IParameter()=default
virtual bool isNull() const
Returns true if wrapped parameter was not initialized with proper real value.
bool hasSameData(const IParameter &other)
Returns true if two parameters are pointing to the same raw data.
virtual IParameter * clone(const std::string &new_name="") const =0
const std::function< void()> m_onChange
IParameter(const std::string &name, T *data, const std::string &parent_name, const std::function< void()> &onChange)
const std::string m_parent_name
std::string fullName() const
For use in error messages.