1 #pragma clang diagnostic push
2 #pragma clang diagnostic ignored "-Wdocumentation-unknown-command"
7 #pragma clang diagnostic pop
23 auto candidate =
getEntry(path, name, group);
24 if(candidate !=
nullptr) {
25 return candidate->getValue<T>();
35 auto pos = fullName.find(
":");
36 auto path = fullName.substr(0, pos);
37 auto name = fullName.substr(pos + 1);
38 return getNamedSettingValue<T>(path, name, group);
43 const T& value,
WTerm group) {
44 auto candidate =
getEntry(path, name, group);
45 if(candidate !=
nullptr) {
46 candidate->setDefault<T>(value);
53 return &(
_settings[group][path][name] = setitem);
59 auto pos = fullName.find(
":");
60 auto path = fullName.substr(0, pos);
61 auto name = fullName.substr(pos + 1);
62 return addSetting<T>(path, name, value, group);
67 const T& value,
WTerm group) {
73 auto candidate =
getEntry(path, name, group);
74 if(candidate !=
nullptr) {
75 candidate->setValue<T>(value);
80 if(candidate !=
nullptr) {
81 auto newset =
cloneSetting(path, name, *candidate, group);
82 newset->setValue<T>(value);
91 auto pos = fullName.find(
":");
92 auto path = fullName.substr(0, pos);
93 auto name = fullName.substr(pos + 1);
94 return changeSetting<T>(path, name, value, group);
Setting * changeSetting(const std::string &path, const std::string &name, const T &value, WTerm group=WTerm::COMMON)
change a setting value
T * getNamedSettingValue(const std::string &path, const std::string &name, WTerm group=WTerm::COMMON)
access a specific setting value
std::enable_if< std::is_arithmetic< typename std::remove_reference< T >::type >::value, double >::type toDouble(T value)
Setting * cloneSetting(const std::string &path, const std::string &name, const Setting &value, WTerm group=WTerm::COMMON)
void setDefault(const T &value)
modify the setting default value
void setValue(const T &value)
modify the setting value
Setting * getEntry(const std::string &path, const std::string &name, WTerm group)
std::map< WTerm, NamedDict< NamedDict< Setting > > > _settings
the Hammer options dictionary
container for an Hammer run option
void processMassWidth(const std::string &path, const std::string &name, double value) const
bool isMassWidth(const std::string &name) const
Setting * addSetting(const std::string &path, const std::string &name, const T &value, WTerm group=WTerm::COMMON)
add a setting to the store