21 std::is_integral_v<std::remove_cv_t<T>> &&
22 sizeof(std::remove_cv_t<T>) <
sizeof(std::int64_t);
43 std::totally_ordered<T> &&
44 !std::is_same_v<std::remove_cv_t<T>,
bool> &&
45 (detail::SupportedFloatingAltitude<T> || detail::SupportedIntegralAltitude<T>);
53template<AltitudeValue T>
58template<AltitudeValue T>
59struct AltitudeDiffSelector {
60 using type = std::conditional_t<std::is_integral_v<T>, std::int64_t,
T>;
73template<AltitudeValue T>
74using AltitudeDiff =
typename detail::AltitudeDiffSelector<T>::type;
83template<AltitudeValue T>
std::vector< T > AltitudeBuffer
Owning dense altitude buffer indexed by internal node id.
typename detail::AltitudeDiffSelector< T >::type AltitudeDiff
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::span< const T > AltitudeSpan
Read-only contiguous view over node altitudes.
Value types accepted by generic altitude helpers.
Owning result for one computed scalar attribute layout and buffer.