summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2017-10-18 10:30:17 -0700
committerJohn Firebaugh <john.firebaugh@gmail.com>2017-10-18 10:30:17 -0700
commit289f4fbbbcac870f427c5f42d4ed35449bc8aca3 (patch)
tree7a0b1a891a2ac97e9052557afac2ac2aac1e1da7
parent1fc5d3957a9f4ae0a8341f9bc908b3b55ee20ad9 (diff)
downloadqtlocation-mapboxgl-289f4fbbbcac870f427c5f42d4ed35449bc8aca3.tar.gz
Avoid unnecessary use of std::function
-rw-r--r--platform/android/src/style/android_conversion.hpp3
-rw-r--r--platform/darwin/src/MGLConversion.h7
-rw-r--r--platform/node/src/node_conversion.hpp3
-rw-r--r--platform/qt/src/qt_conversion.hpp5
-rw-r--r--src/mbgl/style/rapidjson_conversion.hpp3
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 =