mirror of
https://github.com/4ian/GDevelop.git
synced 2025-10-15 10:19:04 +00:00
Add type checks in gd::String::From/To
(to avoid use with wxString, std::string and sf::String)
This commit is contained in:
@@ -246,6 +246,12 @@ public:
|
||||
template<typename T>
|
||||
static String From(T value)
|
||||
{
|
||||
static_assert(!std::is_same<T, std::string>::value, "Can't use gd::String::From with std::string.");
|
||||
static_assert(!std::is_same<T, sf::String>::value, "Can't use gd::String::From with sf::String.");
|
||||
#if defined(GD_IDE_ONLY) && !defined(GD_NO_WX_GUI)
|
||||
static_assert(!std::is_same<T, wxString>::value, "Can't use gd::String::From with wxString.");
|
||||
#endif
|
||||
|
||||
std::ostringstream oss;
|
||||
oss << value;
|
||||
return gd::String(oss.str().c_str());
|
||||
@@ -258,6 +264,12 @@ public:
|
||||
template<typename T>
|
||||
T To() const
|
||||
{
|
||||
static_assert(!std::is_same<T, std::string>::value, "Can't use gd::String::To with std::string.");
|
||||
static_assert(!std::is_same<T, sf::String>::value, "Can't use gd::String::To with sf::String.");
|
||||
#if defined(GD_IDE_ONLY) && !defined(GD_NO_WX_GUI)
|
||||
static_assert(!std::is_same<T, wxString>::value, "Can't use gd::String::To with wxString.");
|
||||
#endif
|
||||
|
||||
T value;
|
||||
std::istringstream oss(m_string);
|
||||
oss >> value;
|
||||
|
@@ -198,10 +198,10 @@ void SoundObjectEditor::OnValidateButtonClick(wxCommandEvent& event)
|
||||
else
|
||||
object.SetSoundType("Music");
|
||||
|
||||
object.SetVolume(gd::String::From(VolumeSpinCtrl->GetValue()).To<float>());
|
||||
object.SetAttenuation(gd::String::From(AttenuationSpinCtrl->GetValue()).To<float>());
|
||||
object.SetPitch(gd::String::From(pitchTextCtrl->GetValue()).To<float>());
|
||||
object.SetMinDistance(gd::String::From(MinDistanceSpinCtrl->GetValue()).To<float>());
|
||||
object.SetVolume(VolumeSpinCtrl->GetValue());
|
||||
object.SetAttenuation(gd::String(AttenuationSpinCtrl->GetValue()).To<float>());
|
||||
object.SetPitch(gd::String(pitchTextCtrl->GetValue()).To<float>());
|
||||
object.SetMinDistance(MinDistanceSpinCtrl->GetValue());
|
||||
object.SetLooping(LoopCheckBox->IsChecked());
|
||||
object.SetSoundFileName(FileNameTextCtrl->GetValue());
|
||||
|
||||
|
Reference in New Issue
Block a user