diff options
Diffstat (limited to 'lib/settings/configuration.cpp')
-rw-r--r-- | lib/settings/configuration.cpp | 4 |
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; } |