20inline constexpr bool SupportedIntegralAltitude = std::is_integral_v<std::remove_cv_t<T>> &&
sizeof(std::remove_cv_t<T>) <
sizeof(std::int64_t);
40 std::totally_ordered<T> && !std::is_same_v<std::remove_cv_t<T>,
bool> && (detail::SupportedFloatingAltitude<T> || detail::SupportedIntegralAltitude<T>);
57template <AltitudeValue T>
struct AltitudeDifferenceSelector {
59 using type = std::conditional_t<std::is_integral_v<T>, std::int64_t, T>;
72template <AltitudeValue T>
using AltitudeDifference =
typename detail::AltitudeDifferenceSelector<T>::type;
typename detail::AltitudeDifferenceSelector< T >::type AltitudeDifference
Arithmetic result type for altitude differences.
constexpr bool SupportedFloatingAltitude
True when T is a floating-point altitude type.
constexpr bool SupportedIntegralAltitude
True when T is an integral altitude type with safe 64-bit differences.
std::vector< T > NodeAltitudeBuffer
Owning dense altitude buffer indexed by internal node id.
std::span< const T > NodeAltitudeSpan
Read-only contiguous view over node altitudes.
Value types accepted by generic altitude helpers.