diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2017-10-18 10:30:17 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2017-10-18 10:30:17 -0700 |
commit | 289f4fbbbcac870f427c5f42d4ed35449bc8aca3 (patch) | |
tree | 7a0b1a891a2ac97e9052557afac2ac2aac1e1da7 | |
parent | 1fc5d3957a9f4ae0a8341f9bc908b3b55ee20ad9 (diff) | |
download | qtlocation-mapboxgl-289f4fbbbcac870f427c5f42d4ed35449bc8aca3.tar.gz |
Avoid unnecessary use of std::function
-rw-r--r-- | platform/android/src/style/android_conversion.hpp | 3 | ||||
-rw-r--r-- | platform/darwin/src/MGLConversion.h | 7 | ||||
-rw-r--r-- | platform/node/src/node_conversion.hpp | 3 | ||||
-rw-r--r-- | platform/qt/src/qt_conversion.hpp | 5 | ||||
-rw-r--r-- | src/mbgl/style/rapidjson_conversion.hpp | 3 |
5 files changed, 14 insertions, 7 deletions
diff --git a/platform/android/src/style/android_conversion.hpp b/platform/android/src/style/android_conversion.hpp index 9b0ddbb50a..fbf5e2cd62 100644 --- a/platform/android/src/style/android_conversion.hpp +++ b/platform/android/src/style/android_conversion.hpp @@ -46,7 +46,8 @@ public: } } - static optional<Error> eachMember(const mbgl::android::Value&, const std::function<optional<Error> (const std::string&, const mbgl::android::Value&)>&) { + template <class Fn> + static optional<Error> eachMember(const mbgl::android::Value&, Fn&&) { // TODO mbgl::Log::Warning(mbgl::Event::Android, "eachMember not implemented"); return {}; diff --git a/platform/darwin/src/MGLConversion.h b/platform/darwin/src/MGLConversion.h index 1edb387a99..0d18d4e716 100644 --- a/platform/darwin/src/MGLConversion.h +++ b/platform/darwin/src/MGLConversion.h @@ -58,7 +58,12 @@ public: } } - static optional<Error> eachMember(const Holder& holder, const std::function<optional<Error> (const std::string&, const Holder&)>& fn) { +// Compiler is wrong about `Fn` parameter missing a nullability specifier. +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wnullability-completeness" + template <class Fn> + static optional<Error> eachMember(const Holder&, Fn&&) { +#pragma clang diagnostic pop // Not implemented (unneeded for MGLStyleFunction conversion). NSCAssert(NO, @"eachMember not implemented"); return {}; diff --git a/platform/node/src/node_conversion.hpp b/platform/node/src/node_conversion.hpp index 04494eb142..ed457c1a39 100644 --- a/platform/node/src/node_conversion.hpp +++ b/platform/node/src/node_conversion.hpp @@ -59,7 +59,8 @@ public: return {scope.Escape(result.ToLocalChecked())}; } - static optional<Error> eachMember(const v8::Local<v8::Value>& value, const std::function<optional<Error> (const std::string&, const v8::Local<v8::Value>&)>& fn) { + template <class Fn> + static optional<Error> eachMember(const v8::Local<v8::Value>& value, Fn&& fn) { Nan::HandleScope scope; v8::Local<v8::Array> names = Nan::GetOwnPropertyNames(Nan::To<v8::Object>(value).ToLocalChecked()).ToLocalChecked(); for (uint32_t i = 0; i < names->Length(); ++i) { diff --git a/platform/qt/src/qt_conversion.hpp b/platform/qt/src/qt_conversion.hpp index 91d5d48c12..eaeb391db0 100644 --- a/platform/qt/src/qt_conversion.hpp +++ b/platform/qt/src/qt_conversion.hpp @@ -53,9 +53,8 @@ public: } } - using EachMemberFn = std::function<optional<Error>(const std::string&, const QVariant&)>; - - static optional<Error> eachMember(const QVariant& value, const EachMemberFn& fn) { + template <class Fn> + static optional<Error> eachMember(const QVariant& value, Fn&& fn) { auto map = value.toMap(); auto iter = map.constBegin(); diff --git a/src/mbgl/style/rapidjson_conversion.hpp b/src/mbgl/style/rapidjson_conversion.hpp index 967f1d829c..79bd9c928b 100644 --- a/src/mbgl/style/rapidjson_conversion.hpp +++ b/src/mbgl/style/rapidjson_conversion.hpp @@ -41,7 +41,8 @@ public: return {member}; } - static optional<Error> eachMember(const JSValue* value, const std::function<optional<Error> (const std::string&, const JSValue* const&)>& fn) { + template <class Fn> + static optional<Error> eachMember(const JSValue* value, Fn&& fn) { assert(value->IsObject()); for (const auto& property : value->GetObject()) { optional<Error> result = |