|
|
|
@ -188,22 +188,16 @@ public: |
|
|
|
this->SetValue(this->GetDefault()); |
|
|
|
return; |
|
|
|
} |
|
|
|
try { |
|
|
|
if constexpr (std::is_same_v<Type, std::string>) { |
|
|
|
this->SetValue(input); |
|
|
|
} else if constexpr (std::is_same_v<Type, std::optional<u32>>) { |
|
|
|
this->SetValue(u32(std::stoul(input))); |
|
|
|
} else if constexpr (std::is_same_v<Type, bool>) { |
|
|
|
this->SetValue(input == "true"); |
|
|
|
} else if constexpr (std::is_same_v<Type, float>) { |
|
|
|
this->SetValue(std::stof(input)); |
|
|
|
} else { |
|
|
|
this->SetValue(Type(std::stoll(input))); |
|
|
|
} |
|
|
|
} catch (std::invalid_argument&) { |
|
|
|
this->SetValue(this->GetDefault()); |
|
|
|
} catch (std::out_of_range&) { |
|
|
|
this->SetValue(this->GetDefault()); |
|
|
|
if constexpr (std::is_same_v<Type, std::string>) { |
|
|
|
this->SetValue(input); |
|
|
|
} else if constexpr (std::is_same_v<Type, std::optional<u32>>) { |
|
|
|
this->SetValue(u32(std::strtoul(input.c_str(), NULL, 10))); |
|
|
|
} else if constexpr (std::is_same_v<Type, bool>) { |
|
|
|
this->SetValue(input == "true"); |
|
|
|
} else if constexpr (std::is_same_v<Type, float>) { |
|
|
|
this->SetValue(std::strtof(input.c_str(), NULL)); |
|
|
|
} else { |
|
|
|
this->SetValue(Type(std::strtoll(input.c_str(), NULL))); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|