Merge branch 'Project-OSRM:master' into master
This commit is contained in:
		
						commit
						81ec7a14b9
					
				| @ -80,6 +80,7 @@ | |||||||
|       - ADDED: Extract prerelease/build information from package semver [#6839](https://github.com/Project-OSRM/osrm-backend/pull/6839) |       - ADDED: Extract prerelease/build information from package semver [#6839](https://github.com/Project-OSRM/osrm-backend/pull/6839) | ||||||
|     - Profiles: |     - Profiles: | ||||||
|       - FIXED: Bicycle and foot profiles now don't route on proposed ways [#6615](https://github.com/Project-OSRM/osrm-backend/pull/6615) |       - FIXED: Bicycle and foot profiles now don't route on proposed ways [#6615](https://github.com/Project-OSRM/osrm-backend/pull/6615) | ||||||
|  |       - ADDED: Add optional support of cargo bike exclusion and width to bicyle profile [#7044](https://github.com/Project-OSRM/osrm-backend/pull/7044) | ||||||
|     - Routing: |     - Routing: | ||||||
|       - FIXED: Fix adding traffic signal penalties during compression [#6419](https://github.com/Project-OSRM/osrm-backend/pull/6419) |       - FIXED: Fix adding traffic signal penalties during compression [#6419](https://github.com/Project-OSRM/osrm-backend/pull/6419) | ||||||
|       - FIXED: Correctly handle compressed traffic signals. [#6724](https://github.com/Project-OSRM/osrm-backend/pull/6724) |       - FIXED: Correctly handle compressed traffic signals. [#6724](https://github.com/Project-OSRM/osrm-backend/pull/6724) | ||||||
|  | |||||||
| @ -603,6 +603,8 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade | |||||||
|         auto found_range = std::equal_range( |         auto found_range = std::equal_range( | ||||||
|             m_maneuver_overrides.begin(), m_maneuver_overrides.end(), edge_based_node_id, Comp{}); |             m_maneuver_overrides.begin(), m_maneuver_overrides.end(), edge_based_node_id, Comp{}); | ||||||
| 
 | 
 | ||||||
|  |         results.reserve(std::distance(found_range.first, found_range.second)); | ||||||
|  | 
 | ||||||
|         std::for_each(found_range.first, |         std::for_each(found_range.first, | ||||||
|                       found_range.second, |                       found_range.second, | ||||||
|                       [&](const auto &override) |                       [&](const auto &override) | ||||||
|  | |||||||
| @ -2,43 +2,13 @@ | |||||||
| #define OSRM_UTIL_BIT_RANGE_HPP | #define OSRM_UTIL_BIT_RANGE_HPP | ||||||
| 
 | 
 | ||||||
| #include "util/msb.hpp" | #include "util/msb.hpp" | ||||||
| 
 | #include <bit> | ||||||
| #include <boost/iterator/iterator_facade.hpp> | #include <boost/iterator/iterator_facade.hpp> | ||||||
| #include <boost/range/iterator_range.hpp> | #include <boost/range/iterator_range.hpp> | ||||||
| 
 | 
 | ||||||
| namespace osrm::util | namespace osrm::util | ||||||
| { | { | ||||||
| 
 | 
 | ||||||
| namespace detail |  | ||||||
| { |  | ||||||
| template <typename T> std::size_t countOnes(T value) |  | ||||||
| { |  | ||||||
|     static_assert(std::is_unsigned<T>::value, "Only unsigned types allowed"); |  | ||||||
|     std::size_t number_of_ones = 0; |  | ||||||
|     while (value > 0) |  | ||||||
|     { |  | ||||||
|         auto index = msb(value); |  | ||||||
|         value = value & ~(T{1} << index); |  | ||||||
|         number_of_ones++; |  | ||||||
|     } |  | ||||||
|     return number_of_ones; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #if (defined(__clang__) || defined(__GNUC__) || defined(__GNUG__)) |  | ||||||
| inline std::size_t countOnes(std::uint8_t value) |  | ||||||
| { |  | ||||||
|     return __builtin_popcount(std::uint32_t{value}); |  | ||||||
| } |  | ||||||
| inline std::size_t countOnes(std::uint16_t value) |  | ||||||
| { |  | ||||||
|     return __builtin_popcount(std::uint32_t{value}); |  | ||||||
| } |  | ||||||
| inline std::size_t countOnes(unsigned int value) { return __builtin_popcount(value); } |  | ||||||
| inline std::size_t countOnes(unsigned long value) { return __builtin_popcountl(value); } |  | ||||||
| inline std::size_t countOnes(unsigned long long value) { return __builtin_popcountll(value); } |  | ||||||
| #endif |  | ||||||
| } // namespace detail
 |  | ||||||
| 
 |  | ||||||
| // Investigate if we can replace this with
 | // Investigate if we can replace this with
 | ||||||
| // http://www.boost.org/doc/libs/1_64_0/libs/dynamic_bitset/dynamic_bitset.html
 | // http://www.boost.org/doc/libs/1_64_0/libs/dynamic_bitset/dynamic_bitset.html
 | ||||||
| template <typename DataT> | template <typename DataT> | ||||||
| @ -70,7 +40,7 @@ class BitIterator : public boost::iterator_facade<BitIterator<DataT>, | |||||||
| 
 | 
 | ||||||
|     difference_type distance_to(const BitIterator &other) const |     difference_type distance_to(const BitIterator &other) const | ||||||
|     { |     { | ||||||
|         return detail::countOnes(m_value) - detail::countOnes(other.m_value); |         return std::popcount(m_value) - std::popcount(other.m_value); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     bool equal(const BitIterator &other) const { return m_value == other.m_value; } |     bool equal(const BitIterator &other) const { return m_value == other.m_value; } | ||||||
|  | |||||||
| @ -1,50 +1,24 @@ | |||||||
| #ifndef OSRM_UTIL_MSB_HPP | #ifndef OSRM_UTIL_MSB_HPP | ||||||
| #define OSRM_UTIL_MSB_HPP | #define OSRM_UTIL_MSB_HPP | ||||||
| 
 | 
 | ||||||
|  | #include <bit> | ||||||
| #include <boost/assert.hpp> | #include <boost/assert.hpp> | ||||||
| 
 |  | ||||||
| #include <climits> |  | ||||||
| #include <cstdint> | #include <cstdint> | ||||||
| #include <utility> | #include <limits> | ||||||
| 
 | 
 | ||||||
| namespace osrm::util | namespace osrm::util | ||||||
| { | { | ||||||
| 
 | 
 | ||||||
| // get the msb of an integer
 |  | ||||||
| // return 0 for integers without msb
 |  | ||||||
| template <typename T> std::size_t msb(T value) | template <typename T> std::size_t msb(T value) | ||||||
| { | { | ||||||
|  |     BOOST_ASSERT(value > 0); | ||||||
|  | 
 | ||||||
|     static_assert(std::is_integral<T>::value && !std::is_signed<T>::value, "Integer required."); |     static_assert(std::is_integral<T>::value && !std::is_signed<T>::value, "Integer required."); | ||||||
|     std::size_t msb = 0; |     constexpr auto MSB_INDEX = std::numeric_limits<unsigned char>::digits * sizeof(T) - 1; | ||||||
|     while (value > 0) | 
 | ||||||
|     { |     return MSB_INDEX - std::countl_zero(value); | ||||||
|         value >>= 1u; |  | ||||||
|         msb++; |  | ||||||
|     } |  | ||||||
|     BOOST_ASSERT(msb > 0); |  | ||||||
|     return msb - 1; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #if (defined(__clang__) || defined(__GNUC__) || defined(__GNUG__)) |  | ||||||
| inline std::size_t msb(unsigned long long v) |  | ||||||
| { |  | ||||||
|     BOOST_ASSERT(v > 0); |  | ||||||
|     constexpr auto MSB_INDEX = CHAR_BIT * sizeof(unsigned long long) - 1; |  | ||||||
|     return MSB_INDEX - __builtin_clzll(v); |  | ||||||
| } |  | ||||||
| inline std::size_t msb(unsigned long v) |  | ||||||
| { |  | ||||||
|     BOOST_ASSERT(v > 0); |  | ||||||
|     constexpr auto MSB_INDEX = CHAR_BIT * sizeof(unsigned long) - 1; |  | ||||||
|     return MSB_INDEX - __builtin_clzl(v); |  | ||||||
| } |  | ||||||
| inline std::size_t msb(unsigned int v) |  | ||||||
| { |  | ||||||
|     BOOST_ASSERT(v > 0); |  | ||||||
|     constexpr auto MSB_INDEX = CHAR_BIT * sizeof(unsigned int) - 1; |  | ||||||
|     return MSB_INDEX - __builtin_clz(v); |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
| } // namespace osrm::util
 | } // namespace osrm::util
 | ||||||
| 
 | 
 | ||||||
| #endif | #endif | ||||||
|  | |||||||
| @ -37,6 +37,10 @@ function setup() | |||||||
|     turn_bias                 = 1.4, |     turn_bias                 = 1.4, | ||||||
|     use_public_transport      = true, |     use_public_transport      = true, | ||||||
| 
 | 
 | ||||||
|  |     -- Exclude narrow ways, in particular to route with cargo bike | ||||||
|  |     width                     = nil, -- Cargo bike could 0.5 width, in meters | ||||||
|  |     exclude_cargo_bike        = false, | ||||||
|  | 
 | ||||||
|     allowed_start_modes = Set { |     allowed_start_modes = Set { | ||||||
|       mode.cycling, |       mode.cycling, | ||||||
|       mode.pushing_bike |       mode.pushing_bike | ||||||
| @ -251,6 +255,27 @@ function process_node(profile, node, result) | |||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |   if profile.exclude_cargo_bike then | ||||||
|  |     local cargo_bike = node:get_value_by_key("cargo_bike") | ||||||
|  |     if cargo_bike and cargo_bike == "no" then | ||||||
|  |       result.barrier = true | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   -- width | ||||||
|  |   if profile.width then | ||||||
|  |     -- From barrier=cycle_barrier or other barriers | ||||||
|  |     local maxwidth_physical = node:get_value_by_key("maxwidth:physical") | ||||||
|  |     local maxwidth_physical_meter = maxwidth_physical and Measure.parse_value_meters(maxwidth_physical) or 99 | ||||||
|  |     local opening = node:get_value_by_key("opening") | ||||||
|  |     local opening_meter = opening and Measure.parse_value_meters(opening) or 99 | ||||||
|  |     local width_meter = math.min(maxwidth_physical_meter, opening_meter) | ||||||
|  | 
 | ||||||
|  |     if width_meter and width_meter < profile.width then | ||||||
|  |       result.barrier = true | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|   -- check if node is a traffic light |   -- check if node is a traffic light | ||||||
|   result.traffic_lights = TrafficSignal.get_value(node) |   result.traffic_lights = TrafficSignal.get_value(node) | ||||||
| end | end | ||||||
| @ -307,6 +332,8 @@ function handle_bicycle_tags(profile,way,result,data) | |||||||
| 
 | 
 | ||||||
|   bike_push_handler(profile,way,result,data) |   bike_push_handler(profile,way,result,data) | ||||||
| 
 | 
 | ||||||
|  |   -- width should be after bike_push | ||||||
|  |   width_handler(profile,way,result,data) | ||||||
| 
 | 
 | ||||||
|   -- maxspeed |   -- maxspeed | ||||||
|   limit( result, data.maxspeed, data.maxspeed_forward, data.maxspeed_backward ) |   limit( result, data.maxspeed, data.maxspeed_forward, data.maxspeed_backward ) | ||||||
| @ -479,6 +506,27 @@ function cycleway_handler(profile,way,result,data) | |||||||
|   end |   end | ||||||
| end | end | ||||||
| 
 | 
 | ||||||
|  | function width_handler(profile,way,result,data) | ||||||
|  |   if profile.exclude_cargo_bike then | ||||||
|  |     local cargo_bike = way:get_value_by_key("cargo_bike") | ||||||
|  |     if cargo_bike and cargo_bike == "no" then | ||||||
|  |       result.forward_mode = mode.inaccessible | ||||||
|  |       result.backward_mode = mode.inaccessible | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   if profile.width then | ||||||
|  |     local width = way:get_value_by_key("width") | ||||||
|  |     if width then | ||||||
|  |       local width_meter = Measure.parse_value_meters(width) | ||||||
|  |       if width_meter and width_meter < profile.width then | ||||||
|  |         result.forward_mode = mode.inaccessible | ||||||
|  |         result.backward_mode = mode.inaccessible | ||||||
|  |       end | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | end | ||||||
|  | 
 | ||||||
| function bike_push_handler(profile,way,result,data) | function bike_push_handler(profile,way,result,data) | ||||||
|   -- pushing bikes - if no other mode found |   -- pushing bikes - if no other mode found | ||||||
|   if result.forward_mode == mode.inaccessible or result.backward_mode == mode.inaccessible or |   if result.forward_mode == mode.inaccessible or result.backward_mode == mode.inaccessible or | ||||||
|  | |||||||
| @ -10,7 +10,7 @@ set -o nounset | |||||||
| # http://git.661346.n2.nabble.com/subtree-merges-lose-prefix-after-rebase-td7332850.html | # http://git.661346.n2.nabble.com/subtree-merges-lose-prefix-after-rebase-td7332850.html | ||||||
| 
 | 
 | ||||||
| OSMIUM_PATH="osmcode/libosmium" | OSMIUM_PATH="osmcode/libosmium" | ||||||
| OSMIUM_TAG=v2.14.0 | OSMIUM_TAG=v2.20.0 | ||||||
| 
 | 
 | ||||||
| SOL_PATH="ThePhD/sol2" | SOL_PATH="ThePhD/sol2" | ||||||
| SOL_TAG=v3.3.0 | SOL_TAG=v3.3.0 | ||||||
| @ -22,7 +22,7 @@ MICROTAR_PATH="rxi/microtar" | |||||||
| MICROTAR_TAG=v0.1.0 | MICROTAR_TAG=v0.1.0 | ||||||
| 
 | 
 | ||||||
| PROTOZERO_PATH="mapbox/protozero" | PROTOZERO_PATH="mapbox/protozero" | ||||||
| PROTOZERO_TAG=v1.6.2 | PROTOZERO_TAG=v1.7.1 | ||||||
| 
 | 
 | ||||||
| VTZERO_PATH="mapbox/vtzero" | VTZERO_PATH="mapbox/vtzero" | ||||||
| VTZERO_TAG=v1.1.0 | VTZERO_TAG=v1.1.0 | ||||||
|  | |||||||
							
								
								
									
										5
									
								
								third_party/libosmium/.clang-tidy
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								third_party/libosmium/.clang-tidy
									
									
									
									
										vendored
									
									
								
							| @ -1,5 +1,5 @@ | |||||||
| --- | --- | ||||||
| Checks: '*,-abseil-string-find-str-contains,-altera-*,-android-cloexec-*,-bugprone-branch-clone,-bugprone-easily-swappable-parameters,-bugprone-macro-parentheses,-cert-dcl21-cpp,-cert-err58-cpp,-clang-analyzer-optin.cplusplus.VirtualCall,-cppcoreguidelines-avoid-c-arrays,-cppcoreguidelines-avoid-magic-numbers,-cppcoreguidelines-macro-usage,-cppcoreguidelines-non-private-member-variables-in-classes,-cppcoreguidelines-owning-memory,-cppcoreguidelines-pro-bounds-array-to-pointer-decay,-cppcoreguidelines-pro-bounds-constant-array-index,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-cppcoreguidelines-pro-type-const-cast,-cppcoreguidelines-pro-type-reinterpret-cast,-cppcoreguidelines-pro-type-static-cast-downcast,-cppcoreguidelines-pro-type-vararg,-fuchsia-*,-google-runtime-references,-hicpp-avoid-c-arrays,-hicpp-invalid-access-moved,-hicpp-no-array-decay,-hicpp-no-assembler,-hicpp-vararg,-llvmlibc-*,-llvm-qualified-auto,-misc-macro-parentheses,-misc-non-private-member-variables-in-classes,-misc-no-recursion,-misc-unused-parameters,-modernize-avoid-c-arrays,-modernize-make-unique,-modernize-raw-string-literal,-modernize-use-trailing-return-type,-readability-avoid-const-params-in-decls,-readability-function-cognitive-complexity,-readability-identifier-length,-readability-implicit-bool-cast,-readability-implicit-bool-conversion,-readability-magic-numbers,-readability-qualified-auto' | Checks: '*,-abseil-string-find-str-contains,-altera-*,-android-cloexec-*,-bugprone-branch-clone,-bugprone-easily-swappable-parameters,-bugprone-macro-parentheses,-cert-dcl21-cpp,-cert-err58-cpp,-clang-analyzer-optin.cplusplus.VirtualCall,-cppcoreguidelines-avoid-c-arrays,-cppcoreguidelines-avoid-magic-numbers,-cppcoreguidelines-macro-usage,-cppcoreguidelines-non-private-member-variables-in-classes,-cppcoreguidelines-owning-memory,-cppcoreguidelines-pro-bounds-array-to-pointer-decay,-cppcoreguidelines-pro-bounds-constant-array-index,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-cppcoreguidelines-pro-type-const-cast,-cppcoreguidelines-pro-type-reinterpret-cast,-cppcoreguidelines-pro-type-static-cast-downcast,-cppcoreguidelines-pro-type-vararg,-fuchsia-*,-google-runtime-references,-hicpp-avoid-c-arrays,-hicpp-invalid-access-moved,-hicpp-no-array-decay,-hicpp-no-assembler,-hicpp-vararg,-llvmlibc-*,-llvm-qualified-auto,-misc-macro-parentheses,-misc-non-private-member-variables-in-classes,-misc-no-recursion,-misc-unused-parameters,-modernize-avoid-c-arrays,-modernize-make-unique,-modernize-raw-string-literal,-modernize-use-trailing-return-type,-readability-avoid-const-params-in-decls,-readability-convert-member-functions-to-static,-readability-function-cognitive-complexity,-readability-identifier-length,-readability-implicit-bool-cast,-readability-implicit-bool-conversion,-readability-magic-numbers,-readability-qualified-auto' | ||||||
| # | # | ||||||
| #  For a list of check options, see: | #  For a list of check options, see: | ||||||
| #  https://clang.llvm.org/extra/clang-tidy/checks/list.html | #  https://clang.llvm.org/extra/clang-tidy/checks/list.html | ||||||
| @ -137,6 +137,9 @@ Checks: '*,-abseil-string-find-str-contains,-altera-*,-android-cloexec-*,-bugpro | |||||||
| #    This is header only library, so the declaration and implementation are | #    This is header only library, so the declaration and implementation are | ||||||
| #    often the same and we want to have the const in implementations. | #    often the same and we want to have the const in implementations. | ||||||
| # | # | ||||||
|  | #  readability-convert-member-functions-to-static | ||||||
|  | #    Reports too many false positives | ||||||
|  | # | ||||||
| #  readability-function-cognitive-complexity | #  readability-function-cognitive-complexity | ||||||
| #    Sometimes the large functions are needed. | #    Sometimes the large functions are needed. | ||||||
| # | # | ||||||
|  | |||||||
| @ -7,7 +7,13 @@ runs: | |||||||
|       run: mkdir build |       run: mkdir build | ||||||
|       shell: bash |       shell: bash | ||||||
|     - name: Configure |     - name: Configure | ||||||
|       run: cmake -LA .. -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DBUILD_HEADERS=OFF -DBUILD_BENCHMARKS=ON -DOsmium_DEBUG=TRUE -DPROTOZERO_INCLUDE_DIR=${GITHUB_WORKSPACE}/../protozero/include |       run: | | ||||||
|  |         cmake -LA .. \ | ||||||
|  |               -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake \ | ||||||
|  |               -DBUILD_HEADERS=OFF \ | ||||||
|  |               -DBUILD_BENCHMARKS=ON \ | ||||||
|  |               -DOsmium_DEBUG=TRUE \ | ||||||
|  |               -DPROTOZERO_INCLUDE_DIR=${GITHUB_WORKSPACE}/../protozero/include | ||||||
|       shell: bash |       shell: bash | ||||||
|       working-directory: build |       working-directory: build | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ runs: | |||||||
|   steps: |   steps: | ||||||
|     - name: Install packages |     - name: Install packages | ||||||
|       run: | |       run: | | ||||||
|         sudo apt-get update -q |         sudo apt-get update -qq | ||||||
|         sudo apt-get install -yq \ |         sudo apt-get install -yq \ | ||||||
|              doxygen \ |              doxygen \ | ||||||
|              libboost-dev \ |              libboost-dev \ | ||||||
| @ -16,8 +16,5 @@ runs: | |||||||
|              libsparsehash-dev \ |              libsparsehash-dev \ | ||||||
|              ruby-json \ |              ruby-json \ | ||||||
|              spatialite-bin |              spatialite-bin | ||||||
|         test "$CC" = clang-6.0 && sudo apt-get install -yq --no-install-suggests --no-install-recommends clang-6.0 |  | ||||||
|         test "$CC" = clang-8   && sudo apt-get install -yq --no-install-suggests --no-install-recommends clang-8 |  | ||||||
|         test "$CC" = clang-13  && sudo apt-get install -yq --no-install-suggests --no-install-recommends clang-13 |  | ||||||
|       shell: bash |       shell: bash | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										240
									
								
								third_party/libosmium/.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										240
									
								
								third_party/libosmium/.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @ -3,14 +3,13 @@ name: CI | |||||||
| on: [ push, pull_request ] | on: [ push, pull_request ] | ||||||
| 
 | 
 | ||||||
| jobs: | jobs: | ||||||
| 
 |  | ||||||
|   linux: |   linux: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|     timeout-minutes: 40 |     timeout-minutes: 40 | ||||||
|     strategy: |     strategy: | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
|         name: [Ubuntu-18, Ubuntu-20, Ubuntu-21, Debian-9, Debian-10, Debian-11, Debian-Testing, Debian-Experimental, Fedora-34] |         name: [Ubuntu-18, Ubuntu-20, Ubuntu-22, Debian-10, Debian-11, Debian-12, Debian-Testing, Debian-Experimental, Fedora-35, Fedora-36, Fedora-37, Fedora-38] | ||||||
|         build_type: [Dev] |         build_type: [Dev] | ||||||
|         cpp_compiler: [g++] |         cpp_compiler: [g++] | ||||||
|         cpp_version: [c++11] |         cpp_version: [c++11] | ||||||
| @ -19,122 +18,136 @@ jobs: | |||||||
|             # Uses gcc 7.5.0, clang 6.0.0, cmake 3.10.2 |             # Uses gcc 7.5.0, clang 6.0.0, cmake 3.10.2 | ||||||
|             image: "ubuntu:18.04" |             image: "ubuntu:18.04" | ||||||
|             ubuntu: 18 |             ubuntu: 18 | ||||||
|             installer: apt |  | ||||||
|           - name: Ubuntu-20 |           - name: Ubuntu-20 | ||||||
|             # Uses gcc 9.3.0, clang 10.0.0, cmake 3.16.3 |             # Uses gcc 9.3.0, clang 10.0.0, cmake 3.16.3 | ||||||
|             image: "ubuntu:20.04" |             image: "ubuntu:20.04" | ||||||
|             ubuntu: 20 |             ubuntu: 20 | ||||||
|             installer: apt |           - name: Ubuntu-22 | ||||||
|           - name: Ubuntu-21 |             # Uses gcc 12.2.0, clang 15.0.7, cmake 3.24.2 | ||||||
|             # Uses gcc 10.3.0, clang, 12.0.0, cmake 3.18.4 |             image: "ubuntu:22.04" | ||||||
|             image: "ubuntu:21.04" |             ubuntu: 22 | ||||||
|             ubuntu: 21 |             CXXFLAGS: -Wno-stringop-overread | ||||||
|             installer: apt |  | ||||||
|           - name: Debian-9 |  | ||||||
|             # Uses gcc 6.3.0, clang 3.8.1, cmake 3.7.2 |  | ||||||
|             image: "debian:stretch" |  | ||||||
|             installer: apt |  | ||||||
|           - name: Debian-10 |           - name: Debian-10 | ||||||
|             # Uses gcc 8.3.0, clang 7.0.1, cmake 3.13.4 |             # Uses gcc 8.3.0, clang 7.0.1, cmake 3.13.4 | ||||||
|             image: "debian:buster" |             image: "debian:buster" | ||||||
|             installer: apt |  | ||||||
|           - name: Debian-11 |           - name: Debian-11 | ||||||
|             # Uses gcc 10.2.1, clang 11.0.1, cmake 3.18.4 |             # Uses gcc 10.2.1, clang 11.0.1, cmake 3.18.4 | ||||||
|             image: "debian:bullseye" |             image: "debian:bullseye" | ||||||
|             installer: apt |  | ||||||
|           - name: Debian-11 |           - name: Debian-11 | ||||||
|             # Uses gcc 10.2.1, clang 11.0.1, cmake 3.18.4 |  | ||||||
|             image: "debian:bullseye" |             image: "debian:bullseye" | ||||||
|             installer: apt |  | ||||||
|             cpp_version: c++17 |             cpp_version: c++17 | ||||||
|           - name: Debian-11 |           - name: Debian-11 | ||||||
|             # Uses gcc 10.2.1, clang 11.0.1, cmake 3.18.4 |  | ||||||
|             image: "debian:bullseye" |             image: "debian:bullseye" | ||||||
|             installer: apt |  | ||||||
|             cpp_version: c++20 |             cpp_version: c++20 | ||||||
|           - name: Debian-11 |           - name: Debian-11 | ||||||
|             # Uses gcc 10.2.1, clang 11.0.1, cmake 3.18.4 |  | ||||||
|             image: "debian:bullseye" |             image: "debian:bullseye" | ||||||
|             installer: apt |             c_compiler: clang | ||||||
|  |             cpp_compiler: clang++ | ||||||
|  |           - name: Debian-11 | ||||||
|  |             image: "debian:bullseye" | ||||||
|             c_compiler: clang |             c_compiler: clang | ||||||
|             cpp_compiler: clang++ |             cpp_compiler: clang++ | ||||||
|             cpp_version: c++17 |             cpp_version: c++17 | ||||||
|           - name: Debian-11 |           - name: Debian-11 | ||||||
|             # Uses gcc 10.2.1, clang 11.0.1, cmake 3.18.4 |  | ||||||
|             image: "debian:bullseye" |             image: "debian:bullseye" | ||||||
|             installer: apt |  | ||||||
|             c_compiler: clang |             c_compiler: clang | ||||||
|             cpp_compiler: clang++ |             cpp_compiler: clang++ | ||||||
|             cpp_version: c++20 |             cpp_version: c++20 | ||||||
|           - name: Debian-11 |           - name: Debian-11 | ||||||
|             # Uses gcc 10.2.1, clang 11.0.1, cmake 3.18.4 |  | ||||||
|             image: "debian:bullseye" |             image: "debian:bullseye" | ||||||
|             installer: apt |  | ||||||
|             build_type: RelWithDebInfo |             build_type: RelWithDebInfo | ||||||
|           - name: Debian-11 |           - name: Debian-11 | ||||||
|             # Uses gcc 10.2.1, clang 11.0.1, cmake 3.18.4 |  | ||||||
|             image: "debian:bullseye" |             image: "debian:bullseye" | ||||||
|             installer: apt |  | ||||||
|             c_compiler: clang |             c_compiler: clang | ||||||
|             cpp_compiler: clang++ |             cpp_compiler: clang++ | ||||||
|           - name: Debian-11 |             CXXFLAGS: -fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer | ||||||
|             # Uses gcc 10.2.1, clang 11.0.1, cmake 3.18.4 |             LDFLAGS: -fsanitize=address,undefined | ||||||
|             image: "debian:bullseye" |           - name: Debian-12 | ||||||
|             installer: apt |             # Uses gcc 12.2.0, clang 15.0.6, cmake 3.25.1 | ||||||
|             c_compiler: clang |             image: "debian:bookworm" | ||||||
|             cpp_compiler: clang++ |  | ||||||
|             CXXFLAGS: -fsanitize=address,undefined,integer -fno-sanitize-recover=all -fno-omit-frame-pointer |  | ||||||
|             LDFLAGS: -fsanitize=address,undefined,integer |  | ||||||
|           - name: Debian-Testing |  | ||||||
|             # Uses gcc 10.3.0, clang 11.1.0, cmake 3.21.3 |  | ||||||
|             image: "debian:testing" |  | ||||||
|             installer: apt |  | ||||||
|             CXXFLAGS: -Wno-stringop-overread |             CXXFLAGS: -Wno-stringop-overread | ||||||
|  |           - name: Debian-12 | ||||||
|  |             image: "debian:bookworm" | ||||||
|  |             cpp_version: c++17 | ||||||
|  |             CXXFLAGS: -Wno-stringop-overread | ||||||
|  |           - name: Debian-12 | ||||||
|  |             image: "debian:bookworm" | ||||||
|  |             cpp_version: c++20 | ||||||
|  |             CXXFLAGS: -Wno-stringop-overread | ||||||
|  |           - name: Debian-12 | ||||||
|  |             image: "debian:bookworm" | ||||||
|  |             c_compiler: clang | ||||||
|  |             cpp_compiler: clang++ | ||||||
|  |           - name: Debian-12 | ||||||
|  |             image: "debian:bookworm" | ||||||
|  |             c_compiler: clang | ||||||
|  |             cpp_compiler: clang++ | ||||||
|  |             cpp_version: c++17 | ||||||
|  |           - name: Debian-12 | ||||||
|  |             image: "debian:bookworm" | ||||||
|  |             c_compiler: clang | ||||||
|  |             cpp_compiler: clang++ | ||||||
|  |             cpp_version: c++20 | ||||||
|  |           - name: Debian-12 | ||||||
|  |             image: "debian:bookworm" | ||||||
|  |             build_type: RelWithDebInfo | ||||||
|  |             CXXFLAGS: -Wno-stringop-overread | ||||||
|  |           - name: Debian-12 | ||||||
|  |             image: "debian:bookworm" | ||||||
|  |             c_compiler: clang | ||||||
|  |             cpp_compiler: clang++ | ||||||
|  |             CXXFLAGS: -fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer | ||||||
|  |             LDFLAGS: -fsanitize=address,undefined | ||||||
|  |           - name: Debian-Testing | ||||||
|  |             image: "debian:testing" | ||||||
|  |             CXXFLAGS: -Wno-stringop-overread -Wno-dangling-reference | ||||||
|           - name: Debian-Testing |           - name: Debian-Testing | ||||||
|             # Uses gcc 10.3.0, clang 11.1.0, cmake 3.21.3 |  | ||||||
|             image: "debian:testing" |             image: "debian:testing" | ||||||
|             installer: apt |  | ||||||
|             c_compiler: clang |             c_compiler: clang | ||||||
|             cpp_compiler: clang++ |             cpp_compiler: clang++ | ||||||
|           - name: Debian-Experimental |           - name: Debian-Experimental | ||||||
|             # Uses gcc 11, clang 14, cmake 3.21.3 |  | ||||||
|             image: "debian:experimental" |             image: "debian:experimental" | ||||||
|             installer: apt |             CXXFLAGS: -Wno-stringop-overread -Wno-dangling-reference | ||||||
|             CXXFLAGS: -Wno-stringop-overread |  | ||||||
|           - name: Debian-Experimental |           - name: Debian-Experimental | ||||||
|             # Uses gcc 11, clang 14, cmake 3.21.3 |  | ||||||
|             image: "debian:experimental" |             image: "debian:experimental" | ||||||
|             installer: apt |             c_compiler: clang | ||||||
|             c_compiler: clang-14 |             cpp_compiler: clang++ | ||||||
|             cpp_compiler: clang++-14 |  | ||||||
|           - name: Fedora-34 |  | ||||||
|             # Uses gcc 11.2.1, clang 12.0.1, cmake 3.20.5 |  | ||||||
|             image: "fedora:34" |  | ||||||
|             installer: dnf |  | ||||||
|             CXXFLAGS: -Wno-stringop-overread |  | ||||||
|           - name: Fedora-35 |           - name: Fedora-35 | ||||||
|             # Uses gcc 11.2.1, clang 12.0.1, cmake 3.20.5 |             # Uses gcc 11.2.1, clang 12.0.1, cmake 3.20.5 | ||||||
|             image: "fedora:35" |             image: "fedora:35" | ||||||
|             installer: dnf |  | ||||||
|             CXXFLAGS: -Wno-stringop-overread |             CXXFLAGS: -Wno-stringop-overread | ||||||
|  |           - name: Fedora-36 | ||||||
|  |             # Uses gcc 12.2.0, clang 14.0.5, cmake 3.24.2 | ||||||
|  |             image: "fedora:36" | ||||||
|  |             CXXFLAGS: -Wno-stringop-overread | ||||||
|  |           - name: Fedora-37 | ||||||
|  |             # Uses gcc 12.3.1, clang 15.0.7, cmake 3.26.4 | ||||||
|  |             image: "fedora:37" | ||||||
|  |             CXXFLAGS: -Wno-stringop-overread | ||||||
|  |           - name: Fedora-38 | ||||||
|  |             # Uses gcc 13.0.1, clang 16.0.5, cmake 3.26.4 | ||||||
|  |             image: "fedora:38" | ||||||
|  |             CXXFLAGS: -Wno-stringop-overread -Wno-dangling-reference | ||||||
|     container: |     container: | ||||||
|       image: ${{ matrix.image }} |       image: ${{ matrix.image }} | ||||||
|       env: |       env: | ||||||
|         LANG: en_US.UTF-8 |         LANG: en_US.UTF-8 | ||||||
|         BUILD_TYPE: ${{ matrix.build_type }} |         BUILD_TYPE: ${{ matrix.build_type }} | ||||||
|         CXXFLAGS: ${{ matrix.CXXFLAGS }} |  | ||||||
|         LDFLAGS: ${{ matrix.LDFLAGS }} |  | ||||||
|         CC: ${{ matrix.c_compiler }} |         CC: ${{ matrix.c_compiler }} | ||||||
|         CXX: ${{ matrix.cpp_compiler }} |         CXX: ${{ matrix.cpp_compiler }} | ||||||
|  |         CXXFLAGS: ${{ matrix.CXXFLAGS }} | ||||||
|  |         LDFLAGS: ${{ matrix.LDFLAGS }} | ||||||
|         CPP_VERSION: ${{ matrix.cpp_version }} |         CPP_VERSION: ${{ matrix.cpp_version }} | ||||||
|         WITH_PROJ: ON |         WITH_PROJ: ON | ||||||
|  |         APT_LISTCHANGES_FRONTEND: none | ||||||
|  |         DEBIAN_FRONTEND: noninteractive | ||||||
|     steps: |     steps: | ||||||
|       - name: Prepare container (apt) |       - name: Prepare container (apt) | ||||||
|  |         shell: bash | ||||||
|  |         if: startsWith(matrix.image, 'debian:') || startsWith(matrix.image, 'ubuntu:') | ||||||
|         run: | |         run: | | ||||||
|           export APT_LISTCHANGES_FRONTEND=none |  | ||||||
|           export DEBIAN_FRONTEND=noninteractive |  | ||||||
|           apt-get update -qq |           apt-get update -qq | ||||||
|           apt-get install -y \ |           apt-get install -yq \ | ||||||
|             clang \ |             clang \ | ||||||
|             cmake \ |             cmake \ | ||||||
|             doxygen \ |             doxygen \ | ||||||
| @ -154,16 +167,13 @@ jobs: | |||||||
|             ruby-json \ |             ruby-json \ | ||||||
|             spatialite-bin \ |             spatialite-bin \ | ||||||
|             zlib1g-dev |             zlib1g-dev | ||||||
|         shell: bash |  | ||||||
|         if: matrix.installer == 'apt' |  | ||||||
|       - name: Install compiler |       - name: Install compiler | ||||||
|         shell: bash |         shell: bash | ||||||
|         run: | |  | ||||||
|           export APT_LISTCHANGES_FRONTEND=none |  | ||||||
|           export DEBIAN_FRONTEND=noninteractive |  | ||||||
|           apt-get install -y clang-14 |  | ||||||
|         if: matrix.cpp_compiler == 'clang++-14' |         if: matrix.cpp_compiler == 'clang++-14' | ||||||
|  |         run: apt-get install -yq clang-14 | ||||||
|       - name: Prepare container (dnf) |       - name: Prepare container (dnf) | ||||||
|  |         shell: bash | ||||||
|  |         if: startsWith(matrix.image, 'fedora:') | ||||||
|         run: | |         run: | | ||||||
|           dnf install --quiet --assumeyes \ |           dnf install --quiet --assumeyes \ | ||||||
|               boost-devel \ |               boost-devel \ | ||||||
| @ -185,9 +195,7 @@ jobs: | |||||||
|               sparsehash-devel \ |               sparsehash-devel \ | ||||||
|               spatialite-tools \ |               spatialite-tools \ | ||||||
|               zlib-devel |               zlib-devel | ||||||
|         shell: bash |       # Use v1 of checkout because v3 doesn't work with submodules | ||||||
|         if: matrix.installer == 'dnf' |  | ||||||
|       # Use v1 of checkout because v2 doesn't work with submodules |  | ||||||
|       - uses: actions/checkout@v1 |       - uses: actions/checkout@v1 | ||||||
|         with: |         with: | ||||||
|           submodules: true |           submodules: true | ||||||
| @ -197,21 +205,23 @@ jobs: | |||||||
|       - uses: ./.github/actions/ctest |       - uses: ./.github/actions/ctest | ||||||
| 
 | 
 | ||||||
|   ubuntu-latest: |   ubuntu-latest: | ||||||
|     runs-on: ubuntu-20.04 |     runs-on: ubuntu-22.04 | ||||||
|     timeout-minutes: 40 |     timeout-minutes: 40 | ||||||
|     env: |     env: | ||||||
|       CC: clang-13 |       CC: clang-15 | ||||||
|       CXX: clang++-13 |       CXX: clang++-15 | ||||||
|       BUILD_TYPE: Dev |       BUILD_TYPE: Dev | ||||||
|       WITH_PROJ: ON |       WITH_PROJ: ON | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v2 |       - uses: actions/checkout@v3 | ||||||
|         with: |         with: | ||||||
|           submodules: true |           submodules: true | ||||||
|       - name: Install new clang |       - name: Install new clang | ||||||
|         run: | |         run: | | ||||||
|           wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - |           wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/llvm-snapshot.asc | ||||||
|           sudo add-apt-repository 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-13 main' |           sudo add-apt-repository 'deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-15 main' | ||||||
|  |           sudo apt-get update -qq | ||||||
|  |           sudo apt-get install -yq clang-15 | ||||||
|         shell: bash |         shell: bash | ||||||
|       - uses: ./.github/actions/install-ubuntu |       - uses: ./.github/actions/install-ubuntu | ||||||
|       - uses: ./.github/actions/install-protozero |       - uses: ./.github/actions/install-protozero | ||||||
| @ -219,16 +229,27 @@ jobs: | |||||||
|       - uses: ./.github/actions/build |       - uses: ./.github/actions/build | ||||||
|       - uses: ./.github/actions/ctest |       - uses: ./.github/actions/ctest | ||||||
| 
 | 
 | ||||||
|   macos10-dev: |   macos: | ||||||
|     runs-on: macos-10.15 |  | ||||||
|     timeout-minutes: 60 |     timeout-minutes: 60 | ||||||
|  |     strategy: | ||||||
|  |       fail-fast: false | ||||||
|  |       matrix: | ||||||
|  |         os: | ||||||
|  |           - "macos-11" | ||||||
|  |           - "macos-12" | ||||||
|  |           - "macos-13" | ||||||
|  |         build_type: [Dev] | ||||||
|  |         include: | ||||||
|  |           - os: "macos-12" | ||||||
|  |             build_type: Release | ||||||
|  |     runs-on: ${{ matrix.os }} | ||||||
|     env: |     env: | ||||||
|       CC: clang |       CC: clang | ||||||
|       CXX: clang++ |       CXX: clang++ | ||||||
|       BUILD_TYPE: Dev |       BUILD_TYPE: ${{ matrix.build_type }} | ||||||
|       WITH_PROJ: OFF |       WITH_PROJ: OFF | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v2 |       - uses: actions/checkout@v3 | ||||||
|         with: |         with: | ||||||
|           submodules: true |           submodules: true | ||||||
|       - uses: ./.github/actions/install-macos |       - uses: ./.github/actions/install-macos | ||||||
| @ -237,47 +258,17 @@ jobs: | |||||||
|       - uses: ./.github/actions/build |       - uses: ./.github/actions/build | ||||||
|       - uses: ./.github/actions/ctest |       - uses: ./.github/actions/ctest | ||||||
| 
 | 
 | ||||||
|   macos11-dev: |   windows-minimal: | ||||||
|     runs-on: macos-11 |  | ||||||
|     timeout-minutes: 60 |  | ||||||
|     env: |  | ||||||
|       CC: clang |  | ||||||
|       CXX: clang++ |  | ||||||
|       BUILD_TYPE: Dev |  | ||||||
|       WITH_PROJ: OFF |  | ||||||
|     steps: |  | ||||||
|       - uses: actions/checkout@v2 |  | ||||||
|         with: |  | ||||||
|           submodules: true |  | ||||||
|       - uses: ./.github/actions/install-macos |  | ||||||
|       - uses: ./.github/actions/install-protozero |  | ||||||
|       - uses: ./.github/actions/cmake |  | ||||||
|       - uses: ./.github/actions/build |  | ||||||
|       - uses: ./.github/actions/ctest |  | ||||||
| 
 |  | ||||||
|   macos11-release: |  | ||||||
|     runs-on: macos-11 |  | ||||||
|     timeout-minutes: 60 |  | ||||||
|     env: |  | ||||||
|       CC: clang |  | ||||||
|       CXX: clang++ |  | ||||||
|       BUILD_TYPE: Release |  | ||||||
|       WITH_PROJ: OFF |  | ||||||
|     steps: |  | ||||||
|       - uses: actions/checkout@v2 |  | ||||||
|         with: |  | ||||||
|           submodules: true |  | ||||||
|       - uses: ./.github/actions/install-macos |  | ||||||
|       - uses: ./.github/actions/install-protozero |  | ||||||
|       - uses: ./.github/actions/cmake |  | ||||||
|       - uses: ./.github/actions/build |  | ||||||
|       - uses: ./.github/actions/ctest |  | ||||||
| 
 |  | ||||||
|   windows-2019-minimal: |  | ||||||
|     runs-on: windows-2019 |  | ||||||
|     timeout-minutes: 40 |     timeout-minutes: 40 | ||||||
|  |     strategy: | ||||||
|  |       fail-fast: false | ||||||
|  |       matrix: | ||||||
|  |         os: | ||||||
|  |           - windows-2019 | ||||||
|  |           - windows-2022 | ||||||
|  |     runs-on: ${{ matrix.os }} | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v2 |       - uses: actions/checkout@v3 | ||||||
|         with: |         with: | ||||||
|           submodules: true |           submodules: true | ||||||
|       - uses: ./.github/actions/install-windows |       - uses: ./.github/actions/install-windows | ||||||
| @ -289,7 +280,7 @@ jobs: | |||||||
|   windows-2019-full: |   windows-2019-full: | ||||||
|     runs-on: windows-2019 |     runs-on: windows-2019 | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v2 |       - uses: actions/checkout@v3 | ||||||
|         with: |         with: | ||||||
|           submodules: true |           submodules: true | ||||||
|       - uses: ./.github/actions/install-windows |       - uses: ./.github/actions/install-windows | ||||||
| @ -301,16 +292,3 @@ jobs: | |||||||
|       - uses: ./.github/actions/build-windows |       - uses: ./.github/actions/build-windows | ||||||
|       - uses: ./.github/actions/ctest-windows |       - uses: ./.github/actions/ctest-windows | ||||||
| 
 | 
 | ||||||
|   windows-2022-minimal: |  | ||||||
|     runs-on: windows-2022 |  | ||||||
|     timeout-minutes: 40 |  | ||||||
|     steps: |  | ||||||
|       - uses: actions/checkout@v2 |  | ||||||
|         with: |  | ||||||
|           submodules: true |  | ||||||
|       - uses: ./.github/actions/install-windows |  | ||||||
|       - uses: ./.github/actions/install-protozero |  | ||||||
|       - uses: ./.github/actions/cmake-windows |  | ||||||
|       - uses: ./.github/actions/build-windows |  | ||||||
|       - uses: ./.github/actions/ctest-windows |  | ||||||
| 
 |  | ||||||
|  | |||||||
| @ -3,7 +3,6 @@ name: clang-tidy | |||||||
| on: workflow_dispatch | on: workflow_dispatch | ||||||
| 
 | 
 | ||||||
| jobs: | jobs: | ||||||
| 
 |  | ||||||
|   clang-tidy: |   clang-tidy: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|     strategy: |     strategy: | ||||||
| @ -14,9 +13,9 @@ jobs: | |||||||
|           - image: "debian:bullseye" |           - image: "debian:bullseye" | ||||||
|             clang: 11 |             clang: 11 | ||||||
|           - image: "debian:testing" |           - image: "debian:testing" | ||||||
|             clang: 12 |             clang: 15 | ||||||
|           - image: "debian:experimental" |           - image: "debian:experimental" | ||||||
|             clang: 14 |             clang: 15 | ||||||
|     container: |     container: | ||||||
|       image: ${{ matrix.image }} |       image: ${{ matrix.image }} | ||||||
|       env: |       env: | ||||||
| @ -25,29 +24,29 @@ jobs: | |||||||
|         CXX: clang++-${{ matrix.clang }} |         CXX: clang++-${{ matrix.clang }} | ||||||
|         CPP_VERSION: c++11 |         CPP_VERSION: c++11 | ||||||
|         WITH_PROJ: ON |         WITH_PROJ: ON | ||||||
|  |         APT_LISTCHANGES_FRONTEND: none | ||||||
|  |         DEBIAN_FRONTEND: noninteractive | ||||||
|     steps: |     steps: | ||||||
|       - name: Prepare container (apt) |       - name: Prepare container (apt) | ||||||
|         run: | |         run: | | ||||||
|           export APT_LISTCHANGES_FRONTEND=none |  | ||||||
|           export DEBIAN_FRONTEND=noninteractive |  | ||||||
|           apt-get update -qq |           apt-get update -qq | ||||||
|           apt-get install -y \ |           apt-get install -yq \ | ||||||
|             clang-${{ matrix.clang }} \ |                   clang-${{ matrix.clang }} \ | ||||||
|             clang-tidy-${{ matrix.clang }} \ |                   clang-tidy-${{ matrix.clang }} \ | ||||||
|             cmake \ |                   cmake \ | ||||||
|             git \ |                   git \ | ||||||
|             libboost-dev \ |                   libboost-dev \ | ||||||
|             libbz2-dev \ |                   libbz2-dev \ | ||||||
|             libexpat1-dev \ |                   libexpat1-dev \ | ||||||
|             libgdal-dev \ |                   libgdal-dev \ | ||||||
|             libgeos++-dev \ |                   libgeos++-dev \ | ||||||
|             liblz4-dev \ |                   liblz4-dev \ | ||||||
|             libproj-dev \ |                   libproj-dev \ | ||||||
|             libsparsehash-dev \ |                   libsparsehash-dev \ | ||||||
|             make \ |                   make \ | ||||||
|             zlib1g-dev |                   zlib1g-dev | ||||||
|         shell: bash |         shell: bash | ||||||
|       # Use v1 of checkout because v2 doesn't work with submodules |       # Use v1 of checkout because v3 doesn't work with submodules | ||||||
|       - uses: actions/checkout@v1 |       - uses: actions/checkout@v1 | ||||||
|         with: |         with: | ||||||
|           submodules: true |           submodules: true | ||||||
| @ -58,7 +57,7 @@ jobs: | |||||||
|         shell: bash |         shell: bash | ||||||
|         working-directory: build |         working-directory: build | ||||||
|       - name: Upload Log |       - name: Upload Log | ||||||
|         uses: actions/upload-artifact@v2 |         uses: actions/upload-artifact@v3 | ||||||
|         if: always() |         if: always() | ||||||
|         with: |         with: | ||||||
|           name: clang-tidy-${{ matrix.clang }}-log |           name: clang-tidy-${{ matrix.clang }}-log | ||||||
|  | |||||||
							
								
								
									
										53
									
								
								third_party/libosmium/.ycm_extra_conf.py
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										53
									
								
								third_party/libosmium/.ycm_extra_conf.py
									
									
									
									
										vendored
									
									
								
							| @ -1,53 +0,0 @@ | |||||||
| #----------------------------------------------------------------------------- |  | ||||||
| # |  | ||||||
| #  Configuration for YouCompleteMe Vim plugin |  | ||||||
| # |  | ||||||
| #  https://valloric.github.io/YouCompleteMe/ |  | ||||||
| # |  | ||||||
| #----------------------------------------------------------------------------- |  | ||||||
| 
 |  | ||||||
| from os.path import realpath, dirname |  | ||||||
| 
 |  | ||||||
| basedir = dirname(realpath(__file__)) |  | ||||||
| 
 |  | ||||||
| # some default flags |  | ||||||
| # for more information install clang-3.2-doc package and |  | ||||||
| # check UsersManual.html |  | ||||||
| flags = [ |  | ||||||
| '-Werror', |  | ||||||
| '-Wall', |  | ||||||
| '-Wextra', |  | ||||||
| '-pedantic', |  | ||||||
| '-Wno-return-type', |  | ||||||
| '-Wno-unused-parameter', |  | ||||||
| '-Wno-unused-variable', |  | ||||||
| 
 |  | ||||||
| '-std=c++11', |  | ||||||
| 
 |  | ||||||
| # '-x' and 'c++' also required |  | ||||||
| # use 'c' for C projects |  | ||||||
| '-x', |  | ||||||
| 'c++', |  | ||||||
| 
 |  | ||||||
| # workaround for https://github.com/Valloric/YouCompleteMe/issues/303 |  | ||||||
| # also see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=800618 |  | ||||||
| '-isystem', |  | ||||||
| '/usr/lib/ycmd/clang_includes/', |  | ||||||
| 
 |  | ||||||
| # libosmium include dirs |  | ||||||
| '-I%s/include' % basedir, |  | ||||||
| '-I%s/test/include' % basedir, |  | ||||||
| '-I%s/test/data-test/include' % basedir, |  | ||||||
| 
 |  | ||||||
| # include third party libraries |  | ||||||
| '-I/usr/include/gdal', |  | ||||||
| ] |  | ||||||
| 
 |  | ||||||
| # youcompleteme is calling this function to get flags |  | ||||||
| # You can also set database for flags. Check: JSONCompilationDatabase.html in |  | ||||||
| # clang-3.2-doc package |  | ||||||
| def FlagsForFile( filename ): |  | ||||||
|   return { |  | ||||||
|     'flags': flags, |  | ||||||
|     'do_cache': True |  | ||||||
|   } |  | ||||||
							
								
								
									
										36
									
								
								third_party/libosmium/CHANGELOG.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								third_party/libosmium/CHANGELOG.md
									
									
									
									
										vendored
									
									
								
							| @ -12,6 +12,38 @@ This project adheres to [Semantic Versioning](https://semver.org/). | |||||||
| 
 | 
 | ||||||
| ### Fixed | ### Fixed | ||||||
| 
 | 
 | ||||||
|  | ## [2.20.0] - 2023-09-20 | ||||||
|  | 
 | ||||||
|  | ### Changed | ||||||
|  | 
 | ||||||
|  | * Optionally allow fractional seconds in timestamps in OSM files. | ||||||
|  | * Enable `posix_fadvise` usage on FreeBSD. | ||||||
|  | * Make parsing PBFs a bit less picky. | ||||||
|  | * Various small code cleanups. | ||||||
|  | 
 | ||||||
|  | ### Fixed | ||||||
|  | 
 | ||||||
|  | * Don't use class template arguments on `GeometryFactory` constructor | ||||||
|  |   definition. | ||||||
|  | 
 | ||||||
|  | ## [2.19.0] - 2023-01-19 | ||||||
|  | 
 | ||||||
|  | ### Changed | ||||||
|  | 
 | ||||||
|  | * Mark RapidJSON support as deprecated. | ||||||
|  | * Update included Catch to v2.13.10. | ||||||
|  | * Remove deprecated BoolVector class. | ||||||
|  | * Remove deprecated NWRIdSet class. | ||||||
|  | * Remove deprecated AssemblerConfig constructor. | ||||||
|  | * Print start of offending string in overlong string exception. | ||||||
|  | * Implement `set_thread_name()` on FreeBSD. | ||||||
|  | * Some small code cleanups. | ||||||
|  | 
 | ||||||
|  | ### Fixed | ||||||
|  | 
 | ||||||
|  | * Fix return type in `MembersDatabaseCommon::count_not_removed()`. | ||||||
|  | * Make bzip2 unit tests pass on musl-based systems. | ||||||
|  | * Fix bug in members database test case. | ||||||
| 
 | 
 | ||||||
| ## [2.18.0] - 2022-02-07 | ## [2.18.0] - 2022-02-07 | ||||||
| 
 | 
 | ||||||
| @ -1253,7 +1285,9 @@ long time. These will not be part of the next version of libosmium: | |||||||
|   Doxygen (up to version 1.8.8). This version contains a workaround to fix |   Doxygen (up to version 1.8.8). This version contains a workaround to fix | ||||||
|   this. |   this. | ||||||
| 
 | 
 | ||||||
| [unreleased]: https://github.com/osmcode/libosmium/compare/v2.18.0...HEAD | [unreleased]: https://github.com/osmcode/libosmium/compare/v2.20.0...HEAD | ||||||
|  | [2.20.0]: https://github.com/osmcode/libosmium/compare/v2.19.0...v2.20.0 | ||||||
|  | [2.19.0]: https://github.com/osmcode/libosmium/compare/v2.18.9...v2.19.0 | ||||||
| [2.18.0]: https://github.com/osmcode/libosmium/compare/v2.17.3...v2.18.0 | [2.18.0]: https://github.com/osmcode/libosmium/compare/v2.17.3...v2.18.0 | ||||||
| [2.17.3]: https://github.com/osmcode/libosmium/compare/v2.17.2...v2.17.3 | [2.17.3]: https://github.com/osmcode/libosmium/compare/v2.17.2...v2.17.3 | ||||||
| [2.17.2]: https://github.com/osmcode/libosmium/compare/v2.17.1...v2.17.2 | [2.17.2]: https://github.com/osmcode/libosmium/compare/v2.17.1...v2.17.2 | ||||||
|  | |||||||
							
								
								
									
										4
									
								
								third_party/libosmium/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								third_party/libosmium/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							| @ -39,7 +39,7 @@ set(CMAKE_CONFIGURATION_TYPES "Debug;Release;RelWithDebInfo;MinSizeRel;Dev;Cover | |||||||
| project(libosmium) | project(libosmium) | ||||||
| 
 | 
 | ||||||
| set(LIBOSMIUM_VERSION_MAJOR 2) | set(LIBOSMIUM_VERSION_MAJOR 2) | ||||||
| set(LIBOSMIUM_VERSION_MINOR 18) | set(LIBOSMIUM_VERSION_MINOR 20) | ||||||
| set(LIBOSMIUM_VERSION_PATCH 0) | set(LIBOSMIUM_VERSION_PATCH 0) | ||||||
| 
 | 
 | ||||||
| set(LIBOSMIUM_VERSION | set(LIBOSMIUM_VERSION | ||||||
| @ -427,7 +427,7 @@ endif() | |||||||
| # | # | ||||||
| #----------------------------------------------------------------------------- | #----------------------------------------------------------------------------- | ||||||
| message(STATUS "Looking for clang-tidy") | message(STATUS "Looking for clang-tidy") | ||||||
| find_program(CLANG_TIDY NAMES clang-tidy clang-tidy-14 clang-tidy-13 clang-tidy-12 clang-tidy-11) | find_program(CLANG_TIDY NAMES clang-tidy clang-tidy-16 clang-tidy-15 clang-tidy-14 clang-tidy-13 clang-tidy-12 clang-tidy-11) | ||||||
| 
 | 
 | ||||||
| if(CLANG_TIDY) | if(CLANG_TIDY) | ||||||
|     message(STATUS "Looking for clang-tidy - found ${CLANG_TIDY}") |     message(STATUS "Looking for clang-tidy - found ${CLANG_TIDY}") | ||||||
|  | |||||||
| @ -136,8 +136,7 @@ directory, some data tests in `test/osm-testdata` and tests of the examples in | |||||||
| `test/examples`. They are built by the default cmake config. Run `ctest` to | `test/examples`. They are built by the default cmake config. Run `ctest` to | ||||||
| run them. We can always use more tests. | run them. We can always use more tests. | ||||||
| 
 | 
 | ||||||
| Tests are run automatically using Github Actions (Linux/macOS) and Appveyor | Tests are run automatically using Github Actions. | ||||||
| (Windows) services. |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## Documenting the code | ## Documenting the code | ||||||
|  | |||||||
							
								
								
									
										14
									
								
								third_party/libosmium/README.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								third_party/libosmium/README.md
									
									
									
									
										vendored
									
									
								
							| @ -7,8 +7,6 @@ A fast and flexible C++ library for working with OpenStreetMap data. | |||||||
| Libosmium works on Linux, macOS and Windows. | Libosmium works on Linux, macOS and Windows. | ||||||
| 
 | 
 | ||||||
| [](https://github.com/osmcode/libosmium/actions) | [](https://github.com/osmcode/libosmium/actions) | ||||||
| [](https://ci.appveyor.com/project/lonvia/libosmium-eq41p/branch/master) |  | ||||||
| [](https://codecov.io/gh/osmcode/libosmium) |  | ||||||
| [](https://repology.org/metapackage/libosmium) | [](https://repology.org/metapackage/libosmium) | ||||||
| 
 | 
 | ||||||
| Please see the [Libosmium manual](https://osmcode.org/libosmium/manual.html) | Please see the [Libosmium manual](https://osmcode.org/libosmium/manual.html) | ||||||
| @ -17,9 +15,8 @@ for more details than this README can provide. | |||||||
| 
 | 
 | ||||||
| ## Prerequisites | ## Prerequisites | ||||||
| 
 | 
 | ||||||
| Because Libosmium uses many C++11 features you need a modern compiler and | You need a C++11 compiler and standard C++ library. Osmium needs at least GCC | ||||||
| standard C++ library. Osmium needs at least GCC 4.8 or clang (LLVM) 3.4. | 4.8 or clang (LLVM) 3.4. (Some parts may work with older versions.) | ||||||
| (Some parts may work with older versions.) |  | ||||||
| 
 | 
 | ||||||
| Different parts of Libosmium (and the applications built on top of it) need | Different parts of Libosmium (and the applications built on top of it) need | ||||||
| different libraries. You DO NOT NEED to install all of them, just install those | different libraries. You DO NOT NEED to install all of them, just install those | ||||||
| @ -88,13 +85,6 @@ See the | |||||||
| for instructions. | for instructions. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## Switching from the old Osmium |  | ||||||
| 
 |  | ||||||
| If you have been using the old version of Osmium at |  | ||||||
| https://github.com/joto/osmium you might want to read about the [changes |  | ||||||
| needed](https://osmcode.org/libosmium/manual.html#changes-from-old-versions-of-osmium). |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| ## License | ## License | ||||||
| 
 | 
 | ||||||
| Libosmium is available under the Boost Software License. See LICENSE. | Libosmium is available under the Boost Software License. See LICENSE. | ||||||
|  | |||||||
| @ -47,7 +47,7 @@ int main(int argc, char* argv[]) { | |||||||
|     try { |     try { | ||||||
|         const std::string input_filename{argv[1]}; |         const std::string input_filename{argv[1]}; | ||||||
| 
 | 
 | ||||||
|         osmium::memory::Buffer buffer{osmium::io::read_file(input_filename)}; |         const osmium::memory::Buffer buffer{osmium::io::read_file(input_filename)}; | ||||||
| 
 | 
 | ||||||
|         const auto& map_factory = osmium::index::MapFactory<osmium::unsigned_object_id_type, osmium::Location>::instance(); |         const auto& map_factory = osmium::index::MapFactory<osmium::unsigned_object_id_type, osmium::Location>::instance(); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -18,12 +18,12 @@ int main(int argc, char* argv[]) { | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     try { |     try { | ||||||
|         std::string input_filename{argv[1]}; |         const std::string input_filename{argv[1]}; | ||||||
|         std::string output_filename{argv[2]}; |         const std::string output_filename{argv[2]}; | ||||||
| 
 | 
 | ||||||
|         osmium::io::Reader reader{input_filename}; |         osmium::io::Reader reader{input_filename}; | ||||||
|         osmium::io::File output_file{output_filename, "pbf"}; |         const osmium::io::File output_file{output_filename, "pbf"}; | ||||||
|         osmium::io::Header header; |         const osmium::io::Header header; | ||||||
|         osmium::io::Writer writer{output_file, header, osmium::io::overwrite::allow}; |         osmium::io::Writer writer{output_file, header, osmium::io::overwrite::allow}; | ||||||
| 
 | 
 | ||||||
|         while (osmium::memory::Buffer buffer = reader.read()) { // NOLINT(bugprone-use-after-move) Bug in clang-tidy https://bugs.llvm.org/show_bug.cgi?id=36516
 |         while (osmium::memory::Buffer buffer = reader.read()) { // NOLINT(bugprone-use-after-move) Bug in clang-tidy https://bugs.llvm.org/show_bug.cgi?id=36516
 | ||||||
|  | |||||||
							
								
								
									
										9
									
								
								third_party/libosmium/build-appveyor.bat
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								third_party/libosmium/build-appveyor.bat
									
									
									
									
										vendored
									
									
								
							| @ -24,6 +24,11 @@ IF %ERRORLEVEL% NEQ 0 GOTO ERROR | |||||||
| 
 | 
 | ||||||
| SET PATH=C:/projects/bzip2.v140.1.0.6.9/build/native/bin/x64/%config%;%PATH% | SET PATH=C:/projects/bzip2.v140.1.0.6.9/build/native/bin/x64/%config%;%PATH% | ||||||
| 
 | 
 | ||||||
|  | nuget install lz4 -Version 1.3.1.2 | ||||||
|  | IF %ERRORLEVEL% NEQ 0 GOTO ERROR | ||||||
|  | 
 | ||||||
|  | SET PATH=C:/projects/lz4.1.3.1.2/build/native/bin/x64/%config%;%PATH% | ||||||
|  | 
 | ||||||
| CD libosmium | CD libosmium | ||||||
| 
 | 
 | ||||||
| ECHO config^: %config% | ECHO config^: %config% | ||||||
| @ -52,7 +57,9 @@ SET CMAKE_CMD=cmake .. -LA -G "Visual Studio 14 Win64" ^ | |||||||
| -DEXPAT_INCLUDE_DIR=C:/projects/expat.v140.2.2.5/build/native/include ^ | -DEXPAT_INCLUDE_DIR=C:/projects/expat.v140.2.2.5/build/native/include ^ | ||||||
| -DEXPAT_LIBRARY=C:/projects/expat.v140.2.2.5/build/native/lib/x64/%config%/libexpat%libpostfix%.lib ^ | -DEXPAT_LIBRARY=C:/projects/expat.v140.2.2.5/build/native/lib/x64/%config%/libexpat%libpostfix%.lib ^ | ||||||
| -DBZIP2_INCLUDE_DIR=C:/projects/bzip2.v140.1.0.6.9/build/native/include ^ | -DBZIP2_INCLUDE_DIR=C:/projects/bzip2.v140.1.0.6.9/build/native/include ^ | ||||||
| -DBZIP2_LIBRARIES=C:/projects/bzip2.v140.1.0.6.9/build/native/lib/x64/%config%/libbz2%libpostfix%.lib | -DBZIP2_LIBRARIES=C:/projects/bzip2.v140.1.0.6.9/build/native/lib/x64/%config%/libbz2%libpostfix%.lib ^ | ||||||
|  | -DLZ4_INCLUDE_DIR=C:/projects/lz4.1.3.1.2/build/native/include ^ | ||||||
|  | -DLZ4_LIBRARY=C:/projects/lz4.1.3.1.2/build/native/lib/x64/%config%/liblz4%libpostfix%.lib | ||||||
| 
 | 
 | ||||||
| ECHO calling^: %CMAKE_CMD% | ECHO calling^: %CMAKE_CMD% | ||||||
| %CMAKE_CMD% | %CMAKE_CMD% | ||||||
|  | |||||||
							
								
								
									
										3
									
								
								third_party/libosmium/build-msys2.bat
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								third_party/libosmium/build-msys2.bat
									
									
									
									
										vendored
									
									
								
							| @ -16,8 +16,9 @@ call C:\msys64\mingw64\bin\gem.cmd install json | |||||||
| REM Workaround for problem with spatialite (see https://github.com/osmcode/libosmium/issues/262) | REM Workaround for problem with spatialite (see https://github.com/osmcode/libosmium/issues/262) | ||||||
| copy /y C:\msys64\mingw64\bin\libreadline8.dll C:\msys64\mingw64\bin\libreadline7.dll | copy /y C:\msys64\mingw64\bin\libreadline8.dll C:\msys64\mingw64\bin\libreadline7.dll | ||||||
| 
 | 
 | ||||||
| echo "Setting PROJ_LIB variable for correct PROJ.4 working" | echo "Setting PROJ_LIB/DATA variable for correct PROJ.4 working" | ||||||
| set PROJ_LIB=c:\msys64\mingw64\share\proj | set PROJ_LIB=c:\msys64\mingw64\share\proj | ||||||
|  | set PROJ_DATA=c:\msys64\mingw64\share\proj | ||||||
| 
 | 
 | ||||||
| set CXXFLAGS=-Wno-stringop-overflow | set CXXFLAGS=-Wno-stringop-overflow | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -74,8 +74,8 @@ class AmenityHandler : public osmium::handler::Handler { | |||||||
|             c.y += nr.lat(); |             c.y += nr.lat(); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         c.x /= nr_list.size(); |         c.x /= static_cast<double>(nr_list.size()); | ||||||
|         c.y /= nr_list.size(); |         c.y /= static_cast<double>(nr_list.size()); | ||||||
| 
 | 
 | ||||||
|         return c; |         return c; | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -122,11 +122,11 @@ int main(int argc, char* argv[]) { | |||||||
|             return 1; |             return 1; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         osmium::io::File input_file{argv[2]}; |         const osmium::io::File input_file{argv[2]}; | ||||||
| 
 | 
 | ||||||
|         // Configuration for the multipolygon assembler. Here the default settings
 |         // Configuration for the multipolygon assembler. Here the default settings
 | ||||||
|         // are used, but you could change multiple settings.
 |         // are used, but you could change multiple settings.
 | ||||||
|         osmium::area::Assembler::config_type assembler_config; |         const osmium::area::Assembler::config_type assembler_config; | ||||||
| 
 | 
 | ||||||
|         // Set up a filter matching only forests. This will be used to only build
 |         // Set up a filter matching only forests. This will be used to only build
 | ||||||
|         // areas with matching tags.
 |         // areas with matching tags.
 | ||||||
|  | |||||||
| @ -153,8 +153,8 @@ int main(int argc, char* argv[]) { | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // Get input and output file names from command line.
 |     // Get input and output file names from command line.
 | ||||||
|     std::string input_file_name{argv[1]}; |     const std::string input_file_name{argv[1]}; | ||||||
|     std::string output_file_name{argv[2]}; |     const std::string output_file_name{argv[2]}; | ||||||
| 
 | 
 | ||||||
|     try { |     try { | ||||||
|         // Initialize Reader
 |         // Initialize Reader
 | ||||||
|  | |||||||
| @ -68,7 +68,7 @@ int main(int argc, char* argv[]) { | |||||||
|     try { |     try { | ||||||
|         // The Reader is initialized here with an osmium::io::File, but could
 |         // The Reader is initialized here with an osmium::io::File, but could
 | ||||||
|         // also be directly initialized with a file name.
 |         // also be directly initialized with a file name.
 | ||||||
|         osmium::io::File input_file{argv[1]}; |         const osmium::io::File input_file{argv[1]}; | ||||||
|         osmium::io::Reader reader{input_file}; |         osmium::io::Reader reader{input_file}; | ||||||
| 
 | 
 | ||||||
|         // Create an instance of our own CountHandler and push the data from the
 |         // Create an instance of our own CountHandler and push the data from the
 | ||||||
| @ -88,7 +88,7 @@ int main(int argc, char* argv[]) { | |||||||
|         // (though not this one) can use huge amounts of data. So checking actual
 |         // (though not this one) can use huge amounts of data. So checking actual
 | ||||||
|         // memore usage is often useful and can be done easily with this class.
 |         // memore usage is often useful and can be done easily with this class.
 | ||||||
|         // (Currently only works on Linux, not macOS and Windows.)
 |         // (Currently only works on Linux, not macOS and Windows.)
 | ||||||
|         osmium::MemoryUsage memory; |         const osmium::MemoryUsage memory; | ||||||
| 
 | 
 | ||||||
|         std::cout << "\nMemory used: " << memory.peak() << " MBytes\n"; |         std::cout << "\nMemory used: " << memory.peak() << " MBytes\n"; | ||||||
|     } catch (const std::exception& e) { |     } catch (const std::exception& e) { | ||||||
|  | |||||||
| @ -40,11 +40,11 @@ int main(int argc, char* argv[]) { | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // Get output file name from command line.
 |     // Get output file name from command line.
 | ||||||
|     std::string output_file_name{argv[1]}; |     const std::string output_file_name{argv[1]}; | ||||||
| 
 | 
 | ||||||
|     // If output file name is "-", this means STDOUT. Set the OPL file type
 |     // If output file name is "-", this means STDOUT. Set the OPL file type
 | ||||||
|     // in this case. Otherwise take the file type from the file name suffix.
 |     // in this case. Otherwise take the file type from the file name suffix.
 | ||||||
|     osmium::io::File output_file{output_file_name, output_file_name == "-" ? ".opl" : ""}; |     const osmium::io::File output_file{output_file_name, output_file_name == "-" ? ".opl" : ""}; | ||||||
| 
 | 
 | ||||||
|     try { |     try { | ||||||
|         // Create a buffer where all objects will live. Use a sensible initial
 |         // Create a buffer where all objects will live. Use a sensible initial
 | ||||||
|  | |||||||
| @ -43,7 +43,7 @@ int main(int argc, char* argv[]) { | |||||||
|         // Get entity types from command line if there is a 2nd argument.
 |         // Get entity types from command line if there is a 2nd argument.
 | ||||||
|         if (argc == 3) { |         if (argc == 3) { | ||||||
|             read_types = osmium::osm_entity_bits::nothing; |             read_types = osmium::osm_entity_bits::nothing; | ||||||
|             std::string types = argv[2]; |             const std::string types = argv[2]; | ||||||
|             if (types.find('n') != std::string::npos) { |             if (types.find('n') != std::string::npos) { | ||||||
|                 read_types |= osmium::osm_entity_bits::node; |                 read_types |= osmium::osm_entity_bits::node; | ||||||
|             } |             } | ||||||
|  | |||||||
| @ -165,31 +165,31 @@ int main(int argc, char* argv[]) { | |||||||
|         reader.close(); |         reader.close(); | ||||||
| 
 | 
 | ||||||
|         // Write out node, way, and relation offset indexes to disk.
 |         // Write out node, way, and relation offset indexes to disk.
 | ||||||
|         IndexFile nodes_idx{output_dir + "/nodes.idx"}; |         const IndexFile nodes_idx{output_dir + "/nodes.idx"}; | ||||||
|         node_index.dump_as_list(nodes_idx.fd()); |         node_index.dump_as_list(nodes_idx.fd()); | ||||||
| 
 | 
 | ||||||
|         IndexFile ways_idx{output_dir + "/ways.idx"}; |         const IndexFile ways_idx{output_dir + "/ways.idx"}; | ||||||
|         way_index.dump_as_list(ways_idx.fd()); |         way_index.dump_as_list(ways_idx.fd()); | ||||||
| 
 | 
 | ||||||
|         IndexFile relations_idx{output_dir + "/relations.idx"}; |         const IndexFile relations_idx{output_dir + "/relations.idx"}; | ||||||
|         relation_index.dump_as_list(relations_idx.fd()); |         relation_index.dump_as_list(relations_idx.fd()); | ||||||
| 
 | 
 | ||||||
|         // Sort the maps (so later binary search will work on them) and write
 |         // Sort the maps (so later binary search will work on them) and write
 | ||||||
|         // them to disk.
 |         // them to disk.
 | ||||||
|         map_node2way.sort(); |         map_node2way.sort(); | ||||||
|         IndexFile node2way_idx{output_dir + "/node2way.map"}; |         const IndexFile node2way_idx{output_dir + "/node2way.map"}; | ||||||
|         map_node2way.dump_as_list(node2way_idx.fd()); |         map_node2way.dump_as_list(node2way_idx.fd()); | ||||||
| 
 | 
 | ||||||
|         map_node2relation.sort(); |         map_node2relation.sort(); | ||||||
|         IndexFile node2relation_idx{output_dir + "/node2rel.map"}; |         const IndexFile node2relation_idx{output_dir + "/node2rel.map"}; | ||||||
|         map_node2relation.dump_as_list(node2relation_idx.fd()); |         map_node2relation.dump_as_list(node2relation_idx.fd()); | ||||||
| 
 | 
 | ||||||
|         map_way2relation.sort(); |         map_way2relation.sort(); | ||||||
|         IndexFile way2relation_idx{output_dir + "/way2rel.map"}; |         const IndexFile way2relation_idx{output_dir + "/way2rel.map"}; | ||||||
|         map_way2relation.dump_as_list(way2relation_idx.fd()); |         map_way2relation.dump_as_list(way2relation_idx.fd()); | ||||||
| 
 | 
 | ||||||
|         map_relation2relation.sort(); |         map_relation2relation.sort(); | ||||||
|         IndexFile relation2relation_idx{output_dir + "/rel2rel.map"}; |         const IndexFile relation2relation_idx{output_dir + "/rel2rel.map"}; | ||||||
|         map_relation2relation.dump_as_list(relation2relation_idx.fd()); |         map_relation2relation.dump_as_list(relation2relation_idx.fd()); | ||||||
|     } catch (const std::exception& e) { |     } catch (const std::exception& e) { | ||||||
|         // All exceptions used by the Osmium library derive from std::exception.
 |         // All exceptions used by the Osmium library derive from std::exception.
 | ||||||
|  | |||||||
| @ -47,10 +47,10 @@ int main(int argc, char* argv[]) { | |||||||
| 
 | 
 | ||||||
|     try { |     try { | ||||||
|         // The input file, deduce file format from file suffix.
 |         // The input file, deduce file format from file suffix.
 | ||||||
|         osmium::io::File input_file{argv[1]}; |         const osmium::io::File input_file{argv[1]}; | ||||||
| 
 | 
 | ||||||
|         // The output file, force XML OSM file format.
 |         // The output file, force XML OSM file format.
 | ||||||
|         osmium::io::File output_file{argv[2], "osm"}; |         const osmium::io::File output_file{argv[2], "osm"}; | ||||||
| 
 | 
 | ||||||
|         // Initialize Reader for the input file.
 |         // Initialize Reader for the input file.
 | ||||||
|         // Read only changesets (will ignore nodes, ways, and
 |         // Read only changesets (will ignore nodes, ways, and
 | ||||||
|  | |||||||
| @ -67,8 +67,8 @@ public: | |||||||
|     IndexAccess(const IndexAccess&) = delete; |     IndexAccess(const IndexAccess&) = delete; | ||||||
|     IndexAccess& operator=(const IndexAccess&) = delete; |     IndexAccess& operator=(const IndexAccess&) = delete; | ||||||
| 
 | 
 | ||||||
|     IndexAccess(IndexAccess&&) = delete; |     IndexAccess(IndexAccess&&) noexcept = delete; | ||||||
|     IndexAccess& operator=(IndexAccess&&) = delete; |     IndexAccess& operator=(IndexAccess&&) noexcept = delete; | ||||||
| 
 | 
 | ||||||
|     virtual ~IndexAccess() noexcept = default; |     virtual ~IndexAccess() noexcept = default; | ||||||
| 
 | 
 | ||||||
| @ -106,7 +106,7 @@ public: | |||||||
|     ~IndexAccessDense() noexcept override = default; |     ~IndexAccessDense() noexcept override = default; | ||||||
| 
 | 
 | ||||||
|     void dump() const override { |     void dump() const override { | ||||||
|         index_type index{this->fd()}; |         const index_type index{this->fd()}; | ||||||
| 
 | 
 | ||||||
|         for (std::size_t i = 0; i < index.size(); ++i) { |         for (std::size_t i = 0; i < index.size(); ++i) { | ||||||
|             if (index.get(i) != TValue{}) { |             if (index.get(i) != TValue{}) { | ||||||
| @ -116,7 +116,7 @@ public: | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     bool search(const osmium::unsigned_object_id_type& key) const override { |     bool search(const osmium::unsigned_object_id_type& key) const override { | ||||||
|         index_type index{this->fd()}; |         const index_type index{this->fd()}; | ||||||
| 
 | 
 | ||||||
|         try { |         try { | ||||||
|             TValue value = index.get(key); |             TValue value = index.get(key); | ||||||
| @ -153,7 +153,7 @@ public: | |||||||
|     ~IndexAccessSparse() noexcept override = default; |     ~IndexAccessSparse() noexcept override = default; | ||||||
| 
 | 
 | ||||||
|     void dump() const override { |     void dump() const override { | ||||||
|         index_type index{this->fd()}; |         const index_type index{this->fd()}; | ||||||
| 
 | 
 | ||||||
|         for (const auto& element : index) { |         for (const auto& element : index) { | ||||||
|             std::cout << element.first << " " << element.second << "\n"; |             std::cout << element.first << " " << element.second << "\n"; | ||||||
| @ -164,7 +164,7 @@ public: | |||||||
|         using element_type = typename index_type::element_type; |         using element_type = typename index_type::element_type; | ||||||
|         index_type index{this->fd()}; |         index_type index{this->fd()}; | ||||||
| 
 | 
 | ||||||
|         element_type elem{key, TValue{}}; |         const element_type elem{key, TValue{}}; | ||||||
|         const auto positions = std::equal_range(index.begin(), |         const auto positions = std::equal_range(index.begin(), | ||||||
|                                                 index.end(), |                                                 index.end(), | ||||||
|                                                 elem, |                                                 elem, | ||||||
| @ -347,7 +347,7 @@ int run(const IndexAccess<TValue>& index, const Options& options) { | |||||||
| 
 | 
 | ||||||
| int main(int argc, char* argv[]) { | int main(int argc, char* argv[]) { | ||||||
|     // Parse command line options.
 |     // Parse command line options.
 | ||||||
|     Options options{argc, argv}; |     const Options options{argc, argv}; | ||||||
| 
 | 
 | ||||||
|     // Open the index file.
 |     // Open the index file.
 | ||||||
|     const int fd = ::open(options.filename(), O_RDWR); |     const int fd = ::open(options.filename(), O_RDWR); | ||||||
|  | |||||||
| @ -27,11 +27,11 @@ int main(int argc, char* argv[]) { | |||||||
|     try { |     try { | ||||||
|         // The Reader is initialized here with an osmium::io::File, but could
 |         // The Reader is initialized here with an osmium::io::File, but could
 | ||||||
|         // also be directly initialized with a file name.
 |         // also be directly initialized with a file name.
 | ||||||
|         osmium::io::File input_file{argv[1]}; |         const osmium::io::File input_file{argv[1]}; | ||||||
|         osmium::io::Reader reader{input_file}; |         osmium::io::Reader reader{input_file}; | ||||||
| 
 | 
 | ||||||
|         // OSM data comes in buffers, read until there are no more.
 |         // OSM data comes in buffers, read until there are no more.
 | ||||||
|         while (osmium::memory::Buffer buffer = reader.read()) { |         while (const osmium::memory::Buffer buffer = reader.read()) { | ||||||
|             // do nothing
 |             // do nothing
 | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -34,14 +34,14 @@ int main(int argc, char* argv[]) { | |||||||
|     try { |     try { | ||||||
|         // The Reader is initialized here with an osmium::io::File, but could
 |         // The Reader is initialized here with an osmium::io::File, but could
 | ||||||
|         // also be directly initialized with a file name.
 |         // also be directly initialized with a file name.
 | ||||||
|         osmium::io::File input_file{argv[1]}; |         const osmium::io::File input_file{argv[1]}; | ||||||
|         osmium::io::Reader reader{input_file}; |         osmium::io::Reader reader{input_file}; | ||||||
| 
 | 
 | ||||||
|         // Initialize progress bar, enable it only if STDERR is a TTY.
 |         // Initialize progress bar, enable it only if STDERR is a TTY.
 | ||||||
|         osmium::ProgressBar progress{reader.file_size(), osmium::isatty(2)}; |         osmium::ProgressBar progress{reader.file_size(), osmium::isatty(2)}; | ||||||
| 
 | 
 | ||||||
|         // OSM data comes in buffers, read until there are no more.
 |         // OSM data comes in buffers, read until there are no more.
 | ||||||
|         while (osmium::memory::Buffer buffer = reader.read()) { |         while (const osmium::memory::Buffer buffer = reader.read()) { | ||||||
|             // Update progress bar for each buffer.
 |             // Update progress bar for each buffer.
 | ||||||
|             progress.update(reader.offset()); |             progress.update(reader.offset()); | ||||||
|         } |         } | ||||||
|  | |||||||
| @ -68,7 +68,7 @@ int main(int argc, char* argv[]) { | |||||||
| 
 | 
 | ||||||
|     // Create a tile at this location. This will also internally use the
 |     // Create a tile at this location. This will also internally use the
 | ||||||
|     // Mercator projection and then calculate the tile coordinates.
 |     // Mercator projection and then calculate the tile coordinates.
 | ||||||
|     const osmium::geom::Tile tile{uint32_t(zoom), location}; |     const osmium::geom::Tile tile{static_cast<uint32_t>(zoom), location}; | ||||||
|     std::cout << "Tile:     zoom=" << tile.z << " x=" << tile.x << " y=" << tile.y << "\n"; |     std::cout << "Tile:     zoom=" << tile.z << " x=" << tile.x << " y=" << tile.y << "\n"; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
| @ -213,7 +213,7 @@ namespace osmium { | |||||||
| 
 | 
 | ||||||
|                 // Now create the Area object and add the attributes and tags
 |                 // Now create the Area object and add the attributes and tags
 | ||||||
|                 // from the relation.
 |                 // from the relation.
 | ||||||
|                 bool okay = create_area(out_buffer, relation, members); |                 const bool okay = create_area(out_buffer, relation, members); | ||||||
|                 if (okay) { |                 if (okay) { | ||||||
|                     out_buffer.commit(); |                     out_buffer.commit(); | ||||||
|                 } else { |                 } else { | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
| @ -124,15 +124,6 @@ namespace osmium { | |||||||
| 
 | 
 | ||||||
|             AssemblerConfig() noexcept = default; |             AssemblerConfig() noexcept = default; | ||||||
| 
 | 
 | ||||||
|             /**
 |  | ||||||
|              * Constructor |  | ||||||
|              * @deprecated Use default constructor and set values afterwards. |  | ||||||
|              */ |  | ||||||
|             explicit AssemblerConfig(ProblemReporter* pr, bool d = false) : |  | ||||||
|                 problem_reporter(pr), |  | ||||||
|                 debug_level(d) { |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|         }; // struct AssemblerConfig
 |         }; // struct AssemblerConfig
 | ||||||
| 
 | 
 | ||||||
|     } // namespace area
 |     } // namespace area
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
| @ -332,10 +332,10 @@ namespace osmium { | |||||||
|                             if (!way.nodes().empty() && way.is_closed() && !way.tags().empty()) { |                             if (!way.nodes().empty() && way.is_closed() && !way.tags().empty()) { | ||||||
|                                 const auto d = std::count_if(way.tags().cbegin(), way.tags().cend(), std::cref(filter())); |                                 const auto d = std::count_if(way.tags().cbegin(), way.tags().cend(), std::cref(filter())); | ||||||
|                                 if (d > 0) { |                                 if (d > 0) { | ||||||
|                                     osmium::tags::KeyFilter::iterator way_fi_begin(std::cref(filter()), way.tags().cbegin(), way.tags().cend()); |                                     const osmium::tags::KeyFilter::iterator way_fi_begin(std::cref(filter()), way.tags().cbegin(), way.tags().cend()); | ||||||
|                                     osmium::tags::KeyFilter::iterator way_fi_end(std::cref(filter()), way.tags().cend(), way.tags().cend()); |                                     const osmium::tags::KeyFilter::iterator way_fi_end(std::cref(filter()), way.tags().cend(), way.tags().cend()); | ||||||
|                                     osmium::tags::KeyFilter::iterator area_fi_begin(std::cref(filter()), area_tags.cbegin(), area_tags.cend()); |                                     const osmium::tags::KeyFilter::iterator area_fi_begin(std::cref(filter()), area_tags.cbegin(), area_tags.cend()); | ||||||
|                                     osmium::tags::KeyFilter::iterator area_fi_end(std::cref(filter()), area_tags.cend(), area_tags.cend()); |                                     const osmium::tags::KeyFilter::iterator area_fi_end(std::cref(filter()), area_tags.cend(), area_tags.cend()); | ||||||
| #ifdef __cpp_lib_robust_nonmodifying_seq_ops | #ifdef __cpp_lib_robust_nonmodifying_seq_ops | ||||||
|                                     if (!std::equal(way_fi_begin, way_fi_end, area_fi_begin, area_fi_end)) { |                                     if (!std::equal(way_fi_begin, way_fi_end, area_fi_begin, area_fi_end)) { | ||||||
| #else | #else | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
| @ -608,7 +608,7 @@ namespace osmium { | |||||||
| 
 | 
 | ||||||
|                 void create_rings_simple_case() { |                 void create_rings_simple_case() { | ||||||
|                     auto count_remaining = m_segment_list.size(); |                     auto count_remaining = m_segment_list.size(); | ||||||
|                     for (slocation& sl : m_locations) { |                     for (const slocation& sl : m_locations) { | ||||||
|                         const NodeRefSegment& segment = m_segment_list[sl.item]; |                         const NodeRefSegment& segment = m_segment_list[sl.item]; | ||||||
|                         if (!segment.is_done()) { |                         if (!segment.is_done()) { | ||||||
|                             count_remaining -= add_new_ring(sl); |                             count_remaining -= add_new_ring(sl); | ||||||
| @ -671,7 +671,7 @@ namespace osmium { | |||||||
|                         std::cerr << "    Trying to merge " << open_ring_its.size() << " open rings (try_to_merge)\n"; |                         std::cerr << "    Trying to merge " << open_ring_its.size() << " open rings (try_to_merge)\n"; | ||||||
|                     } |                     } | ||||||
| 
 | 
 | ||||||
|                     std::vector<location_to_ring_map> xrings = create_location_to_ring_map(open_ring_its); |                     const auto xrings = create_location_to_ring_map(open_ring_its); | ||||||
| 
 | 
 | ||||||
|                     auto it = xrings.cbegin(); |                     auto it = xrings.cbegin(); | ||||||
|                     while (it != xrings.cend()) { |                     while (it != xrings.cend()) { | ||||||
| @ -825,7 +825,7 @@ namespace osmium { | |||||||
| 
 | 
 | ||||||
|                     find_inner_outer_complex(); |                     find_inner_outer_complex(); | ||||||
|                     ProtoRing* outer_ring = find_enclosing_ring(ring_min->ring().min_segment()); |                     ProtoRing* outer_ring = find_enclosing_ring(ring_min->ring().min_segment()); | ||||||
|                     bool ring_min_is_outer = !outer_ring; |                     const bool ring_min_is_outer = !outer_ring; | ||||||
|                     if (debug()) { |                     if (debug()) { | ||||||
|                         std::cerr << "  Open ring is " << (ring_min_is_outer ? "outer" : "inner") << " ring\n"; |                         std::cerr << "  Open ring is " << (ring_min_is_outer ? "outer" : "inner") << " ring\n"; | ||||||
|                     } |                     } | ||||||
| @ -924,7 +924,7 @@ namespace osmium { | |||||||
| 
 | 
 | ||||||
|                     // Now find all the rest of the rings (ie not starting at split locations)
 |                     // Now find all the rest of the rings (ie not starting at split locations)
 | ||||||
|                     if (count_remaining > 0) { |                     if (count_remaining > 0) { | ||||||
|                         for (slocation& sl : m_locations) { |                         for (const slocation& sl : m_locations) { | ||||||
|                             const NodeRefSegment& segment = m_segment_list[sl.item]; |                             const NodeRefSegment& segment = m_segment_list[sl.item]; | ||||||
|                             if (!segment.is_done()) { |                             if (!segment.is_done()) { | ||||||
|                                 count_remaining -= add_new_ring_complex(sl); |                                 count_remaining -= add_new_ring_complex(sl); | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
| @ -193,7 +193,7 @@ namespace osmium { | |||||||
| 
 | 
 | ||||||
|                 const char* role_name() const noexcept { |                 const char* role_name() const noexcept { | ||||||
|                     static const std::array<const char*, 4> names = {{"unknown", "outer", "inner", "empty"}}; |                     static const std::array<const char*, 4> names = {{"unknown", "outer", "inner", "empty"}}; | ||||||
|                     return names[int(m_role)]; |                     return names[static_cast<int>(m_role)]; | ||||||
|                 } |                 } | ||||||
| 
 | 
 | ||||||
|                 const osmium::Way* way() const noexcept { |                 const osmium::Way* way() const noexcept { | ||||||
| @ -327,9 +327,9 @@ namespace osmium { | |||||||
| 
 | 
 | ||||||
|                     if ((d > 0 && na >= 0 && na <= d && nb >= 0 && nb <= d) || |                     if ((d > 0 && na >= 0 && na <= d && nb >= 0 && nb <= d) || | ||||||
|                         (d < 0 && na <= 0 && na >= d && nb <= 0 && nb >= d)) { |                         (d < 0 && na <= 0 && na >= d && nb <= 0 && nb >= d)) { | ||||||
|                         const double ua = double(na) / d; |                         const double ua = static_cast<double>(na) / static_cast<double>(d); | ||||||
|                         const vec i = p0 + ua * (p1 - p0); |                         const vec i = p0 + ua * (p1 - p0); | ||||||
|                         return osmium::Location{int32_t(i.x), int32_t(i.y)}; |                         return osmium::Location{static_cast<int32_t>(i.x), static_cast<int32_t>(i.y)}; | ||||||
|                     } |                     } | ||||||
| 
 | 
 | ||||||
|                     return osmium::Location{}; |                     return osmium::Location{}; | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
| @ -86,16 +86,16 @@ namespace osmium { | |||||||
|                 int64_t m_num; |                 int64_t m_num; | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|                 int64_t m_sum; |                 int64_t m_sum = 0; | ||||||
| 
 | 
 | ||||||
|             public: |             public: | ||||||
| 
 | 
 | ||||||
|                 explicit ProtoRing(NodeRefSegment* segment) noexcept : |                 explicit ProtoRing(NodeRefSegment* segment) noexcept : | ||||||
|                     m_min_segment(segment), |                     m_min_segment(segment) | ||||||
| #ifdef OSMIUM_DEBUG_RING_NO | #ifdef OSMIUM_DEBUG_RING_NO | ||||||
|                     m_num(next_num()), |                     , m_num(next_num()) | ||||||
| #endif | #endif | ||||||
|                     m_sum(0) { |                     { | ||||||
|                     add_segment_back(segment); |                     add_segment_back(segment); | ||||||
|                 } |                 } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
| @ -333,7 +333,7 @@ namespace osmium { | |||||||
|                             } |                             } | ||||||
| 
 | 
 | ||||||
|                             if (y_range_overlap(s1, s2)) { |                             if (y_range_overlap(s1, s2)) { | ||||||
|                                 osmium::Location intersection{calculate_intersection(s1, s2)}; |                                 const osmium::Location intersection{calculate_intersection(s1, s2)}; | ||||||
|                                 if (intersection) { |                                 if (intersection) { | ||||||
|                                     ++found_intersections; |                                     ++found_intersections; | ||||||
|                                     if (m_debug) { |                                     if (m_debug) { | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
| @ -89,12 +89,12 @@ namespace osmium { | |||||||
| 
 | 
 | ||||||
|             // scale vector
 |             // scale vector
 | ||||||
|             constexpr inline vec operator*(double s, const vec& v) noexcept { |             constexpr inline vec operator*(double s, const vec& v) noexcept { | ||||||
|                 return vec{int64_t(s * v.x), int64_t(s * v.y)}; |                 return vec{static_cast<int64_t>(s * static_cast<double>(v.x)), static_cast<int64_t>(s * static_cast<double>(v.y))}; | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             // scale vector
 |             // scale vector
 | ||||||
|             constexpr inline vec operator*(const vec& v, double s) noexcept { |             constexpr inline vec operator*(const vec& v, double s) noexcept { | ||||||
|                 return vec{int64_t(s * v.x), int64_t(s * v.y)}; |                 return vec{static_cast<int64_t>(s * static_cast<double>(v.x)), static_cast<int64_t>(s * static_cast<double>(v.y))}; | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             // equality
 |             // equality
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
| @ -75,15 +75,15 @@ namespace osmium { | |||||||
|             void set_object(gdalcpp::Feature& feature) { |             void set_object(gdalcpp::Feature& feature) { | ||||||
|                 const char t[2] = {osmium::item_type_to_char(m_object_type), '\0'}; |                 const char t[2] = {osmium::item_type_to_char(m_object_type), '\0'}; | ||||||
|                 feature.set_field("obj_type", t); |                 feature.set_field("obj_type", t); | ||||||
|                 feature.set_field("obj_id", int32_t(m_object_id)); |                 feature.set_field("obj_id", static_cast<int32_t>(m_object_id)); | ||||||
|                 feature.set_field("nodes", int32_t(m_nodes)); |                 feature.set_field("nodes", static_cast<int32_t>(m_nodes)); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             void write_point(const char* problem_type, osmium::object_id_type id1, osmium::object_id_type id2, osmium::Location location) { |             void write_point(const char* problem_type, osmium::object_id_type id1, osmium::object_id_type id2, osmium::Location location) { | ||||||
|                 gdalcpp::Feature feature{m_layer_perror, m_ogr_factory.create_point(location)}; |                 gdalcpp::Feature feature{m_layer_perror, m_ogr_factory.create_point(location)}; | ||||||
|                 set_object(feature); |                 set_object(feature); | ||||||
|                 feature.set_field("id1", double(id1)); |                 feature.set_field("id1", static_cast<double>(id1)); | ||||||
|                 feature.set_field("id2", double(id2)); |                 feature.set_field("id2", static_cast<double>(id2)); | ||||||
|                 feature.set_field("problem", problem_type); |                 feature.set_field("problem", problem_type); | ||||||
|                 feature.add_to_layer(); |                 feature.add_to_layer(); | ||||||
|             } |             } | ||||||
| @ -176,7 +176,7 @@ namespace osmium { | |||||||
|                 try { |                 try { | ||||||
|                     gdalcpp::Feature feature{m_layer_lerror, m_ogr_factory.create_linestring(way)}; |                     gdalcpp::Feature feature{m_layer_lerror, m_ogr_factory.create_linestring(way)}; | ||||||
|                     set_object(feature); |                     set_object(feature); | ||||||
|                     feature.set_field("id1", int32_t(way.id())); |                     feature.set_field("id1", static_cast<int32_t>(way.id())); | ||||||
|                     feature.set_field("id2", 0); |                     feature.set_field("id2", 0); | ||||||
|                     feature.set_field("problem", "way_in_multiple_rings"); |                     feature.set_field("problem", "way_in_multiple_rings"); | ||||||
|                     feature.add_to_layer(); |                     feature.add_to_layer(); | ||||||
| @ -192,7 +192,7 @@ namespace osmium { | |||||||
|                 try { |                 try { | ||||||
|                     gdalcpp::Feature feature{m_layer_lerror, m_ogr_factory.create_linestring(way)}; |                     gdalcpp::Feature feature{m_layer_lerror, m_ogr_factory.create_linestring(way)}; | ||||||
|                     set_object(feature); |                     set_object(feature); | ||||||
|                     feature.set_field("id1", int32_t(way.id())); |                     feature.set_field("id1", static_cast<int32_t>(way.id())); | ||||||
|                     feature.set_field("id2", 0); |                     feature.set_field("id2", 0); | ||||||
|                     feature.set_field("problem", "inner_with_same_tags"); |                     feature.set_field("problem", "inner_with_same_tags"); | ||||||
|                     feature.add_to_layer(); |                     feature.add_to_layer(); | ||||||
| @ -208,7 +208,7 @@ namespace osmium { | |||||||
|                 try { |                 try { | ||||||
|                     gdalcpp::Feature feature{m_layer_lerror, m_ogr_factory.create_linestring(way)}; |                     gdalcpp::Feature feature{m_layer_lerror, m_ogr_factory.create_linestring(way)}; | ||||||
|                     set_object(feature); |                     set_object(feature); | ||||||
|                     feature.set_field("id1", int32_t(way.id())); |                     feature.set_field("id1", static_cast<int32_t>(way.id())); | ||||||
|                     feature.set_field("id2", 0); |                     feature.set_field("id2", 0); | ||||||
|                     feature.set_field("problem", "duplicate_way"); |                     feature.set_field("problem", "duplicate_way"); | ||||||
|                     feature.add_to_layer(); |                     feature.add_to_layer(); | ||||||
| @ -229,7 +229,7 @@ namespace osmium { | |||||||
|                 try { |                 try { | ||||||
|                     gdalcpp::Feature feature{m_layer_ways, m_ogr_factory.create_linestring(way)}; |                     gdalcpp::Feature feature{m_layer_ways, m_ogr_factory.create_linestring(way)}; | ||||||
|                     set_object(feature); |                     set_object(feature); | ||||||
|                     feature.set_field("way_id", int32_t(way.id())); |                     feature.set_field("way_id", static_cast<int32_t>(way.id())); | ||||||
|                     feature.add_to_layer(); |                     feature.add_to_layer(); | ||||||
|                 } catch (const osmium::geometry_error&) { |                 } catch (const osmium::geometry_error&) { | ||||||
|                     // XXX
 |                     // XXX
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
| @ -125,8 +125,8 @@ namespace osmium { | |||||||
|                 if (value_length > osmium::max_osm_string_length) { |                 if (value_length > osmium::max_osm_string_length) { | ||||||
|                     throw std::length_error{"OSM tag value is too long"}; |                     throw std::length_error{"OSM tag value is too long"}; | ||||||
|                 } |                 } | ||||||
|                 add_size(append_with_zero(key,   osmium::memory::item_size_type(key_length))); |                 add_size(append_with_zero(key,   static_cast<osmium::memory::item_size_type>(key_length))); | ||||||
|                 add_size(append_with_zero(value, osmium::memory::item_size_type(value_length))); |                 add_size(append_with_zero(value, static_cast<osmium::memory::item_size_type>(value_length))); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             /**
 |             /**
 | ||||||
| @ -142,8 +142,8 @@ namespace osmium { | |||||||
|                 if (value.size() > osmium::max_osm_string_length) { |                 if (value.size() > osmium::max_osm_string_length) { | ||||||
|                     throw std::length_error{"OSM tag value is too long"}; |                     throw std::length_error{"OSM tag value is too long"}; | ||||||
|                 } |                 } | ||||||
|                 add_size(append(key.data(),   osmium::memory::item_size_type(key.size())   + 1)); |                 add_size(append(key.data(),   static_cast<osmium::memory::item_size_type>(key.size())   + 1)); | ||||||
|                 add_size(append(value.data(), osmium::memory::item_size_type(value.size()) + 1)); |                 add_size(append(value.data(), static_cast<osmium::memory::item_size_type>(value.size()) + 1)); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             /**
 |             /**
 | ||||||
| @ -240,8 +240,8 @@ namespace osmium { | |||||||
|                 if (length > osmium::max_osm_string_length) { |                 if (length > osmium::max_osm_string_length) { | ||||||
|                     throw std::length_error{"OSM relation member role is too long"}; |                     throw std::length_error{"OSM relation member role is too long"}; | ||||||
|                 } |                 } | ||||||
|                 member.set_role_size(osmium::string_size_type(length) + 1); |                 member.set_role_size(static_cast<osmium::string_size_type>(length) + 1); | ||||||
|                 add_size(append_with_zero(role, osmium::memory::item_size_type(length))); |                 add_size(append_with_zero(role, static_cast<osmium::memory::item_size_type>(length))); | ||||||
|                 add_padding(true); |                 add_padding(true); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
| @ -330,16 +330,16 @@ namespace osmium { | |||||||
|                 if (length > osmium::max_osm_string_length) { |                 if (length > osmium::max_osm_string_length) { | ||||||
|                     throw std::length_error{"OSM user name is too long"}; |                     throw std::length_error{"OSM user name is too long"}; | ||||||
|                 } |                 } | ||||||
|                 comment.set_user_size(osmium::string_size_type(length) + 1); |                 comment.set_user_size(static_cast<osmium::string_size_type>(length) + 1); | ||||||
|                 add_size(append_with_zero(user, osmium::memory::item_size_type(length))); |                 add_size(append_with_zero(user, static_cast<osmium::memory::item_size_type>(length))); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             void add_text(osmium::ChangesetComment& comment, const char* text, const std::size_t length) { |             void add_text(osmium::ChangesetComment& comment, const char* text, const std::size_t length) { | ||||||
|                 if (length > std::numeric_limits<osmium::changeset_comment_size_type>::max() - 1) { |                 if (length > std::numeric_limits<osmium::changeset_comment_size_type>::max() - 1) { | ||||||
|                     throw std::length_error{"OSM changeset comment is too long"}; |                     throw std::length_error{"OSM changeset comment is too long"}; | ||||||
|                 } |                 } | ||||||
|                 comment.set_text_size(osmium::changeset_comment_size_type(length) + 1); |                 comment.set_text_size(static_cast<osmium::changeset_comment_size_type>(length) + 1); | ||||||
|                 add_size(append_with_zero(text, osmium::memory::item_size_type(length))); |                 add_size(append_with_zero(text, static_cast<osmium::memory::item_size_type>(length))); | ||||||
|                 add_padding(true); |                 add_padding(true); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								third_party/libosmium/include/osmium/fwd.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								third_party/libosmium/include/osmium/fwd.hpp
									
									
									
									
										vendored
									
									
								
							| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
| @ -166,7 +166,7 @@ namespace osmium { | |||||||
| 
 | 
 | ||||||
|         public: |         public: | ||||||
| 
 | 
 | ||||||
|             GeometryFactory<TGeomImpl, TProjection>() : |             GeometryFactory() : | ||||||
|                 m_projection(), |                 m_projection(), | ||||||
|                 m_impl(m_projection.epsg()) { |                 m_impl(m_projection.epsg()) { | ||||||
|             } |             } | ||||||
| @ -175,7 +175,7 @@ namespace osmium { | |||||||
|              * Constructor for default initialized projection. |              * Constructor for default initialized projection. | ||||||
|              */ |              */ | ||||||
|             template <typename... TArgs> |             template <typename... TArgs> | ||||||
|             explicit GeometryFactory<TGeomImpl, TProjection>(TArgs&&... args) : |             explicit GeometryFactory(TArgs&&... args) : | ||||||
|                 m_projection(), |                 m_projection(), | ||||||
|                 m_impl(m_projection.epsg(), std::forward<TArgs>(args)...) { |                 m_impl(m_projection.epsg(), std::forward<TArgs>(args)...) { | ||||||
|             } |             } | ||||||
| @ -185,7 +185,7 @@ namespace osmium { | |||||||
|              * projection is moved into the GeometryFactory. |              * projection is moved into the GeometryFactory. | ||||||
|              */ |              */ | ||||||
|             template <typename... TArgs> |             template <typename... TArgs> | ||||||
|             explicit GeometryFactory<TGeomImpl, TProjection>(TProjection&& projection, TArgs&&... args) : |             explicit GeometryFactory(TProjection&& projection, TArgs&&... args) : | ||||||
|                 m_projection(std::move(projection)), |                 m_projection(std::move(projection)), | ||||||
|                 m_impl(m_projection.epsg(), std::forward<TArgs>(args)...) { |                 m_impl(m_projection.epsg(), std::forward<TArgs>(args)...) { | ||||||
|             } |             } | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
| @ -47,6 +47,9 @@ namespace osmium { | |||||||
|             /**
 |             /**
 | ||||||
|              * A geometry factory implementation that can be used with the |              * A geometry factory implementation that can be used with the | ||||||
|              * RapidJSON (https://github.com/miloyip/rapidjson) JSON writer.
 |              * RapidJSON (https://github.com/miloyip/rapidjson) JSON writer.
 | ||||||
|  |              * | ||||||
|  |              * @deprecated The RapidJSON support will be removed in a future | ||||||
|  |              *             version of libosmium. | ||||||
|              */ |              */ | ||||||
|             template <typename TWriter> |             template <typename TWriter> | ||||||
|             class RapidGeoJSONFactoryImpl { |             class RapidGeoJSONFactoryImpl { | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
| @ -68,7 +68,7 @@ namespace osmium { | |||||||
|                 std::string out; |                 std::string out; | ||||||
|                 out.reserve(str.size() * 2); |                 out.reserve(str.size() * 2); | ||||||
| 
 | 
 | ||||||
|                 for (char c : str) { |                 for (const char c : str) { | ||||||
|                     out += lookup_hex[(static_cast<unsigned int>(c) >> 4U) & 0xfU]; |                     out += lookup_hex[(static_cast<unsigned int>(c) >> 4U) & 0xfU]; | ||||||
|                     out += lookup_hex[ static_cast<unsigned int>(c)        & 0xfU]; |                     out += lookup_hex[ static_cast<unsigned int>(c)        & 0xfU]; | ||||||
|                 } |                 } | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,50 +0,0 @@ | |||||||
| #ifndef OSMIUM_INDEX_BOOL_VECTOR_HPP |  | ||||||
| #define OSMIUM_INDEX_BOOL_VECTOR_HPP |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
| 
 |  | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 |  | ||||||
| 
 |  | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). |  | ||||||
| 
 |  | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 |  | ||||||
| 
 |  | ||||||
| Permission is hereby granted, free of charge, to any person or organization |  | ||||||
| obtaining a copy of the software and accompanying documentation covered by |  | ||||||
| this license (the "Software") to use, reproduce, display, distribute, |  | ||||||
| execute, and transmit the Software, and to prepare derivative works of the |  | ||||||
| Software, and to permit third-parties to whom the Software is furnished to |  | ||||||
| do so, all subject to the following: |  | ||||||
| 
 |  | ||||||
| The copyright notices in the Software and this entire statement, including |  | ||||||
| the above license grant, this restriction and the following disclaimer, |  | ||||||
| must be included in all copies of the Software, in whole or in part, and |  | ||||||
| all derivative works of the Software, unless such copies or derivative |  | ||||||
| works are solely in the form of machine-executable object code generated by |  | ||||||
| a source language processor. |  | ||||||
| 
 |  | ||||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |  | ||||||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |  | ||||||
| FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT |  | ||||||
| SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE |  | ||||||
| FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, |  | ||||||
| ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |  | ||||||
| DEALINGS IN THE SOFTWARE. |  | ||||||
| 
 |  | ||||||
| */ |  | ||||||
| 
 |  | ||||||
| #include <osmium/index/id_set.hpp> |  | ||||||
| 
 |  | ||||||
| namespace osmium { |  | ||||||
| 
 |  | ||||||
|     namespace index { |  | ||||||
| 
 |  | ||||||
|         /// @deprecated Use osmium::index::IdSet instead.
 |  | ||||||
|         template <typename T> |  | ||||||
|         using BoolVector = IdSet<T>; |  | ||||||
| 
 |  | ||||||
|     } // namespace index
 |  | ||||||
| 
 |  | ||||||
| } // namespace osmium
 |  | ||||||
| 
 |  | ||||||
| #endif // OSMIUM_INDEX_BOOL_VECTOR_HPP
 |  | ||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
| @ -241,7 +241,7 @@ namespace osmium { | |||||||
|                 void dump_as_array(const int fd) final { |                 void dump_as_array(const int fd) final { | ||||||
|                     constexpr const size_t value_size = sizeof(TValue); |                     constexpr const size_t value_size = sizeof(TValue); | ||||||
|                     constexpr const size_t buffer_size = (10L * 1024L * 1024L) / value_size; |                     constexpr const size_t buffer_size = (10L * 1024L * 1024L) / value_size; | ||||||
|                     std::unique_ptr<TValue[]> output_buffer{new TValue[buffer_size]}; |                     const std::unique_ptr<TValue[]> output_buffer{new TValue[buffer_size]}; | ||||||
| 
 | 
 | ||||||
|                     size_t buffer_start_id = 0; |                     size_t buffer_start_id = 0; | ||||||
|                     for (auto it = cbegin(); it != cend();) { |                     for (auto it = cbegin(); it != cend();) { | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
| @ -503,26 +503,6 @@ namespace osmium { | |||||||
| 
 | 
 | ||||||
|         }; // class IdSetSmall
 |         }; // class IdSetSmall
 | ||||||
| 
 | 
 | ||||||
|         /// @deprecated Use nwr_array helper class instead.
 |  | ||||||
|         template <template <typename> class IdSetType> |  | ||||||
|         class NWRIdSet { |  | ||||||
| 
 |  | ||||||
|             using id_set_type = IdSetType<osmium::unsigned_object_id_type>; |  | ||||||
| 
 |  | ||||||
|             std::array<id_set_type, 3> m_sets; |  | ||||||
| 
 |  | ||||||
|         public: |  | ||||||
| 
 |  | ||||||
|             id_set_type& operator()(osmium::item_type type) noexcept { |  | ||||||
|                 return m_sets[osmium::item_type_to_nwr_index(type)]; |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|             const id_set_type& operator()(osmium::item_type type) const noexcept { |  | ||||||
|                 return m_sets[osmium::item_type_to_nwr_index(type)]; |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|         }; // class NWRIdSet
 |  | ||||||
| 
 |  | ||||||
|     } // namespace index
 |     } // namespace index
 | ||||||
| 
 | 
 | ||||||
| } // namespace osmium
 | } // namespace osmium
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
| @ -236,6 +236,7 @@ namespace osmium { | |||||||
| 
 | 
 | ||||||
|             std::vector<std::string> map_types() const { |             std::vector<std::string> map_types() const { | ||||||
|                 std::vector<std::string> result; |                 std::vector<std::string> result; | ||||||
|  |                 result.reserve(m_callbacks.size()); | ||||||
| 
 | 
 | ||||||
|                 for (const auto& cb : m_callbacks) { |                 for (const auto& cb : m_callbacks) { | ||||||
|                     result.push_back(cb.first); |                     result.push_back(cb.first); | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| This file is part of Osmium (https://osmcode.org/libosmium).
 | This file is part of Osmium (https://osmcode.org/libosmium).
 | ||||||
| 
 | 
 | ||||||
| Copyright 2013-2022 Jochen Topf <jochen@topf.org> and others (see README). | Copyright 2013-2023 Jochen Topf <jochen@topf.org> and others (see README). | ||||||
| 
 | 
 | ||||||
| Boost Software License - Version 1.0 - August 17th, 2003 | Boost Software License - Version 1.0 - August 17th, 2003 | ||||||
| 
 | 
 | ||||||
|  | |||||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
		Reference in New Issue
	
	Block a user