15 #ifndef BORNAGAIN_FIT_TOOLS_MULTIOPTION_H
16 #define BORNAGAIN_FIT_TOOLS_MULTIOPTION_H
18 #include <boost/variant.hpp>
28 using variant_t = boost::variant<int, double, std::string>;
33 explicit MultiOption(
const std::string& name,
const T& t,
const std::string& descripion =
"");
35 std::string name()
const;
37 std::string description()
const;
38 void setDescription(
const std::string& description);
41 variant_t& defaultValue();
44 template <
typename T> T
get()
const;
53 std::string m_description;
55 variant_t m_default_value;
59 MultiOption::MultiOption(
const std::string& name,
const T& t,
const std::string& descripion)
62 m_description = descripion;
69 return boost::get<T>(m_value);
74 return boost::get<T>(m_default_value);
Stores a single option for minimization algorithm.
T getDefault() const
Returns the option's default value (i.e. used during construction)
void setFromString(const std::string &value)
Sets the value of option from string.
T get() const
Returns the option's value.