diff options
Diffstat (limited to 'settings.hpp')
-rw-r--r-- | settings.hpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/settings.hpp b/settings.hpp index e6a5b99..7c914f4 100644 --- a/settings.hpp +++ b/settings.hpp @@ -1,5 +1,6 @@ #pragma once #include <string> +#include <type_traits> #include <SimpleIni.h> class SettingsManager { @@ -7,8 +8,17 @@ public: SettingsManager(std::string filename); void Close(); - std::string GetSetting(std::string section, std::string key, std::string fallback = ""); - void SetSetting(std::string section, std::string key, std::string value); + std::string GetSettingString(std::string section, std::string key, std::string fallback = "") const; + int GetSettingInt(std::string section, std::string key, int fallback) const; + + template<typename T> + void SetSetting(std::string section, std::string key, T value) { + static_assert(std::is_convertible<T, std::string>::value); + if constexpr (std::is_same<T, std::string>::value) + m_ini.SetValue(section.c_str(), key.c_str(), value.c_str()); + else + m_ini.SetValue(section.c_str(), key.c_str(), std::to_string(value).c_str()); + } bool IsValid() const; private: |