aboutsummaryrefslogtreecommitdiff
path: root/lib/settings/configuration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/settings/configuration.cpp')
-rw-r--r--lib/settings/configuration.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/settings/configuration.cpp b/lib/settings/configuration.cpp
index 34d50db..4603779 100644
--- a/lib/settings/configuration.cpp
+++ b/lib/settings/configuration.cpp
@@ -214,6 +214,8 @@ void Configuration::setValue(std::string path, const T &val)
// compiler complained about operator= not taking unsinged ints, longs and long longs
if constexpr(std::is_unsigned_v<T> && !std::is_same_v<T, bool>) {
setting = static_cast<typename std::make_signed_t<T>>(val);
+ } else if constexpr(std::is_same_v<T, std::string>) {
+ setting = static_cast<std::string>(val).c_str();
} else {
setting = val;
}
@@ -240,6 +242,8 @@ void Configuration::setValue(std::string path, const T &val)
if constexpr(std::is_unsigned_v<T> && !std::is_same_v<T, bool>) {
*userSetting = static_cast<typename std::make_signed_t<T>>(val);
+ } else if constexpr(std::is_same_v<T, std::string>) {
+ *userSetting = static_cast<std::string>(val).c_str();
} else {
*userSetting = val;
}