From f286ec0633df240ed1096c043e19078ccd8db678 Mon Sep 17 00:00:00 2001 From: William JCM Date: Wed, 22 Sep 2021 18:23:16 +0200 Subject: [PATCH] UESaveFile,GenericStructProperty: update at(). --- src/UESaveFile/Types/GenericStructProperty.h | 3 ++- src/UESaveFile/UESaveFile.cpp | 9 --------- src/UESaveFile/UESaveFile.h | 11 ++++++++++- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/UESaveFile/Types/GenericStructProperty.h b/src/UESaveFile/Types/GenericStructProperty.h index 93b6b88..367f6f0 100644 --- a/src/UESaveFile/Types/GenericStructProperty.h +++ b/src/UESaveFile/Types/GenericStructProperty.h @@ -26,7 +26,8 @@ struct GenericStructProperty : public StructProperty { using ptr = Containers::Pointer; template - auto at(const std::string& name) -> T* { + std::enable_if_t::value, T*> + at(const std::string& name) { for(auto& item : properties) { if(item->name == name) { return static_cast(item.get()); diff --git a/src/UESaveFile/UESaveFile.cpp b/src/UESaveFile/UESaveFile.cpp index 36cca06..5b995f2 100644 --- a/src/UESaveFile/UESaveFile.cpp +++ b/src/UESaveFile/UESaveFile.cpp @@ -43,15 +43,6 @@ auto UESaveFile::reloadData() -> bool { return valid(); } -auto UESaveFile::at(const std::string& name) -> UnrealPropertyBase* { - for(auto& prop : _properties) { - if(*(prop->name) == name) { - return prop.get(); - } - } - return nullptr; -} - auto UESaveFile::props() -> Containers::ArrayView { return _properties; } diff --git a/src/UESaveFile/UESaveFile.h b/src/UESaveFile/UESaveFile.h index 61e49d7..fba6e4d 100644 --- a/src/UESaveFile/UESaveFile.h +++ b/src/UESaveFile/UESaveFile.h @@ -40,7 +40,16 @@ class UESaveFile { auto reloadData() -> bool; - auto at(const std::string& name) -> UnrealPropertyBase*; + template + std::enable_if_t::value, T*> + at(const std::string& name) { + for(auto& prop : _properties) { + if(prop->name == name) { + return static_cast(prop.get()); + } + } + return nullptr; + } auto props() -> Containers::ArrayView;