Skip to content

Version 2.17.2

Compare
Choose a tag to compare
@joto joto released this 16 Dec 08:31
· 90 commits to master since this release

Changed

  • Libosmium now supports being compiled in C++17 and C++20 mode. The minimum version required is still C++11, but if you use libosmium in an C++17 or C++20 application this should work properly.
  • Switch from catch version 1 to catch2 as test framework.
  • When std::variant is available (C++17 and above), libosmium will use that instead of boost::variant reducing the dependencies a little bit.
  • Removed various workaround that were needed for older MSVC compilers.
  • Remove use of boost::filter_iterator and boost::indirect_iterator. The removes the dependency on Boost Iterator.
  • Examples now mostly use the somewhat cleaner return instead of std::exit() to return an exit code from main.
  • As always: Various small code cleanups.

Fixed

  • When ordering OSM objects (mostly use in the CheckOrder handler), the smallest id possible (INTMIN) wasn't sorted correctly.
  • Threading problem when reading files.
  • Possible dereference of invalid iterator in legacy area assembler. This only affects the legacy area assembler that takes old-style multipolygons into account, so modern code that is not working with history data is not affected.
  • Fixed read from an empty queue when reading a file which could block libosmium forever when an error was encountered while reading a file.

Deprecated

Several parts of libosmium have been marked deprecated, many of them for a very long time. These will not be part of the next version of libosmium:

  • Sparsehash index class osmium::index::map::SparseMemTable as well as the complete file osmium/index/map/sparse_mem_table.hpp.
  • Callback functionality of the osmium::memory::Buffer class. The set_full_callback() will not be available any more. See the source
    for replacement options.
  • Various osmium::builder::build_* functions in osmium/builder/builder_helper.hpp. Use osmium::builder::add_* functions instead. Removes builder_helper.hpp.
  • osmium::builder::Builder::add_item(const osmium::memory::Item* item). Use the function of the same name taking a reference instead.
  • osmium::builder::OSMObject/ChangesetBuilder::add_user(). Use set_user() instead.
  • osmium::builder::ChangesetBuilder::bounds() returning a modifiable reference. Use set_bounds() instead.
  • Several functions around osmium::io::OutputIterator.
  • osmium::Area::inner_ring_cbegin/cend(), use inner_rings() instead.
  • osmium::RelationMember::ref(), use set_ref() instead.
  • Implicit conversion from osmium::Timestamp to std::time_t. Use seconds_since_epoch() instead.
  • osmium::string_to_user_id(), use string_to_uid instead.
  • osmium::static_cast_with_assert() helper functions as well as the complete include file osmium/util/cast.hpp.
  • Some constructors of osmium::util::MemoryMapping and osmium::util::TypedMemoryMapping. Use other constructor instead.