diff options
Diffstat (limited to 'include/mbgl/style/conversion.hpp')
-rw-r--r-- | include/mbgl/style/conversion.hpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/include/mbgl/style/conversion.hpp b/include/mbgl/style/conversion.hpp index 2c75a71206..0b7e0b2b2f 100644 --- a/include/mbgl/style/conversion.hpp +++ b/include/mbgl/style/conversion.hpp @@ -251,11 +251,14 @@ private: }, [] (const Storage& s, const char * key) { optional<T> member = Traits::objectMember(reinterpret_cast<const T&>(s), key); - if (member) return optional<Convertible>(std::move(*member)); - return optional<Convertible>(); + if (member) { + return optional<Convertible>(Convertible(std::move(*member))); + } else { + return optional<Convertible>(); + } }, [] (const Storage& s, const std::function<optional<Error> (const std::string&, const Convertible&)>& fn) { - return Traits::eachMember(reinterpret_cast<const T&>(s), [&](const std::string& k, const T&& v) { + return Traits::eachMember(reinterpret_cast<const T&>(s), [&](const std::string& k, T&& v) { return fn(k, Convertible(std::move(v))); }); }, |