Libosmium
2.15.1
Fast and flexible C++ library for working with OpenStreetMap data
|
Go to the documentation of this file. 1 #ifndef OSMIUM_UTIL_DELTA_HPP
2 #define OSMIUM_UTIL_DELTA_HPP
40 #include <type_traits>
45 inline namespace util {
50 template <
typename TValue,
typename TDelta =
int64_t>
53 "DeltaEncode value type must be some integer");
55 "DeltaEncode delta type must be some signed integer");
59 "Delta type size should be larger or equal to value type size");
80 TDelta
update(TValue new_value) noexcept {
86 return static_cast<TDelta
>(
m_value) -
87 static_cast<TDelta
>(new_value);
95 template <
typename TValue,
typename TDelta =
int64_t>
98 "DeltaDecode value type must be some integer");
100 "DeltaDecode delta type must be some signed integer");
123 static_cast<TDelta
>(
m_value) + delta);
133 #endif // OSMIUM_UTIL_DELTA_HPP
TDelta delta_type
Definition: delta.hpp:66
DeltaEncode(TValue value=0)
Definition: delta.hpp:68
DeltaDecode()
Definition: delta.hpp:109
TValue m_value
Definition: delta.hpp:61
void clear() noexcept
Definition: delta.hpp:72
void clear() noexcept
Definition: delta.hpp:113
Namespace for everything in the Osmium library.
Definition: assembler.hpp:53
TValue value() const noexcept
Definition: delta.hpp:76
TValue value_type
Definition: delta.hpp:65
TDelta delta_type
Definition: delta.hpp:107
void swap(Buffer &lhs, Buffer &rhs)
Definition: buffer.hpp:885
TValue update(TDelta delta) noexcept
Definition: delta.hpp:117
TValue m_value
Definition: delta.hpp:102
TDelta update(TValue new_value) noexcept
Definition: delta.hpp:80
TValue value_type
Definition: delta.hpp:106