diff options
author | Thiago Marcos P. Santos <thiago@mapbox.com> | 2016-12-20 14:54:11 -0200 |
---|---|---|
committer | Thiago Marcos P. Santos <thiago@mapbox.com> | 2017-01-24 11:36:59 +0200 |
commit | b39fc1146f1b4f02d03ed40957241205ea83c3c6 (patch) | |
tree | 85ce7a8f1ba462c1365a850c9424af6c3ba599e2 | |
parent | fac44fb93c40517a401bb139a1c1861f000ceff0 (diff) | |
download | qtlocation-mapboxgl-b39fc1146f1b4f02d03ed40957241205ea83c3c6.tar.gz |
[gcc4.9] Make geojson-vt-cpp GCC4.9 compatible
-rw-r--r-- | src/3rd_party/geojson-vt-cpp/include/mapbox/geojsonvt.hpp | 10 | ||||
-rw-r--r-- | src/3rd_party/geojson-vt-cpp/include/mapbox/geojsonvt/tile.hpp | 49 |
2 files changed, 55 insertions, 4 deletions
diff --git a/src/3rd_party/geojson-vt-cpp/include/mapbox/geojsonvt.hpp b/src/3rd_party/geojson-vt-cpp/include/mapbox/geojsonvt.hpp index b758be3929..b23e753b3f 100644 --- a/src/3rd_party/geojson-vt-cpp/include/mapbox/geojsonvt.hpp +++ b/src/3rd_party/geojson-vt-cpp/include/mapbox/geojsonvt.hpp @@ -27,7 +27,17 @@ struct ToFeatureCollection { return { value }; } feature_collection operator()(const geometry& value) const { +#if !defined(__GNUC__) || __GNUC__ >= 5 return { { value } }; +#else + feature feat; + feat.geometry = value; + + feature_collection collec; + collec.push_back(std::move(feat)); + + return collec; +#endif } }; diff --git a/src/3rd_party/geojson-vt-cpp/include/mapbox/geojsonvt/tile.hpp b/src/3rd_party/geojson-vt-cpp/include/mapbox/geojsonvt/tile.hpp index 11ced052e8..365c9445e6 100644 --- a/src/3rd_party/geojson-vt-cpp/include/mapbox/geojsonvt/tile.hpp +++ b/src/3rd_party/geojson-vt-cpp/include/mapbox/geojsonvt/tile.hpp @@ -95,19 +95,42 @@ private: } void addFeature(const vt_point& point, const property_map& props) { +#if !defined(__GNUC__) || __GNUC__ >= 5 tile.features.push_back({ transform(point), props }); +#else + mapbox::geometry::feature<int16_t> feature; + feature.geometry = transform(point); + feature.properties = props; + tile.features.push_back(std::move(feature)); +#endif } void addFeature(const vt_line_string& line, const property_map& props) { const auto new_line = transform(line); - if (!new_line.empty()) + if (!new_line.empty()) { +#if !defined(__GNUC__) || __GNUC__ >= 5 tile.features.push_back({ std::move(new_line), props }); +#else + mapbox::geometry::feature<int16_t> feature; + feature.geometry = std::move(new_line); + feature.properties = props; + tile.features.push_back(std::move(feature)); +#endif + } } void addFeature(const vt_polygon& polygon, const property_map& props) { const auto new_polygon = transform(polygon); - if (!new_polygon.empty()) + if (!new_polygon.empty()) { +#if !defined(__GNUC__) || __GNUC__ >= 5 tile.features.push_back({ std::move(new_polygon), props }); +#else + mapbox::geometry::feature<int16_t> feature; + feature.geometry = std::move(new_polygon); + feature.properties = props; + tile.features.push_back(std::move(feature)); +#endif + } } void addFeature(const vt_geometry_collection& collection, const property_map& props) { @@ -127,18 +150,36 @@ private: case 0: break; case 1: +#if !defined(__GNUC__) || __GNUC__ >= 5 tile.features.push_back({ std::move(new_multi[0]), props }); +#else + { + mapbox::geometry::feature<int16_t> feature; + feature.geometry = std::move(new_multi[0]); + feature.properties = props; + tile.features.push_back(std::move(feature)); + } +#endif break; default: +#if !defined(__GNUC__) || __GNUC__ >= 5 tile.features.push_back({ std::move(new_multi), props }); +#else + { + mapbox::geometry::feature<int16_t> feature; + feature.geometry = std::move(new_multi); + feature.properties = props; + tile.features.push_back(std::move(feature)); + } +#endif break; } } mapbox::geometry::point<int16_t> transform(const vt_point& p) { ++tile.num_simplified; - return { static_cast<int16_t>(std::round((p.x * z2 - x) * extent)), - static_cast<int16_t>(std::round((p.y * z2 - y) * extent)) }; + return { static_cast<int16_t>(::round((p.x * z2 - x) * extent)), + static_cast<int16_t>(::round((p.y * z2 - y) * extent)) }; } mapbox::geometry::multi_point<int16_t> transform(const vt_multi_point& points) { |