From cba32b12e77c8f023ca5efeda7c386b856ad3f47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Sun, 3 Jun 2018 14:18:58 +0200 Subject: [PATCH] IniFile: Use templates for Set() --- Source/Core/Common/IniFile.cpp | 44 ---------------------------------- Source/Core/Common/IniFile.h | 20 +++++++--------- 2 files changed, 9 insertions(+), 55 deletions(-) diff --git a/Source/Core/Common/IniFile.cpp b/Source/Core/Common/IniFile.cpp index d28092261c..d24149b6da 100644 --- a/Source/Core/Common/IniFile.cpp +++ b/Source/Core/Common/IniFile.cpp @@ -57,55 +57,11 @@ void IniFile::Section::Set(const std::string& key, const std::string& newValue) } } -void IniFile::Section::Set(const std::string& key, const std::string& newValue, - const std::string& defaultValue) -{ - if (newValue != defaultValue) - Set(key, newValue); - else - Delete(key); -} - void IniFile::Section::Set(const std::string& key, const std::vector& newValues) { Set(key, JoinStrings(newValues, ",")); } -void IniFile::Section::Set(const std::string& key, u32 newValue) -{ - Set(key, StringFromFormat("0x%08x", newValue)); -} - -void IniFile::Section::Set(const std::string& key, u64 new_value) -{ - Set(key, StringFromFormat("0x%016" PRIx64, new_value)); -} - -void IniFile::Section::Set(const std::string& key, float newValue) -{ - Set(key, StringFromFormat("%#.9g", newValue)); -} - -void IniFile::Section::Set(const std::string& key, double newValue) -{ - Set(key, StringFromFormat("%#.17g", newValue)); -} - -void IniFile::Section::Set(const std::string& key, int newValue) -{ - Set(key, std::to_string(newValue)); -} - -void IniFile::Section::Set(const std::string& key, s64 newValue) -{ - Set(key, StringFromFormat("%" PRId64, newValue)); -} - -void IniFile::Section::Set(const std::string& key, bool newValue) -{ - Set(key, ValueToString(newValue)); -} - bool IniFile::Section::Get(const std::string& key, std::string* value, const std::string& defaultValue) const { diff --git a/Source/Core/Common/IniFile.h b/Source/Core/Common/IniFile.h index 697e700e7e..4830422ea3 100644 --- a/Source/Core/Common/IniFile.h +++ b/Source/Core/Common/IniFile.h @@ -12,6 +12,7 @@ #include "Common/CommonFuncs.h" #include "Common/CommonTypes.h" +#include "Common/StringUtil.h" struct CaseInsensitiveStringCompare { @@ -35,20 +36,17 @@ public: bool Delete(const std::string& key); void Set(const std::string& key, const std::string& newValue); - void Set(const std::string& key, const std::string& newValue, const std::string& defaultValue); - void Set(const std::string& key, u32 newValue); - void Set(const std::string& key, u64 new_value); - void Set(const std::string& key, float newValue); - void Set(const std::string& key, double newValue); - void Set(const std::string& key, int newValue); - void Set(const std::string& key, s64 new_value); - void Set(const std::string& key, bool newValue); + template + void Set(const std::string& key, const T& new_value) + { + Set(key, ValueToString(new_value)); + } template - void Set(const std::string& key, T newValue, const T defaultValue) + void Set(const std::string& key, const T& new_value, const std::common_type_t& default_value) { - if (newValue != defaultValue) - Set(key, newValue); + if (new_value != default_value) + Set(key, new_value); else Delete(key); }