13 static_assert(std::is_default_constructible_v<T>,
14 "na<T>() requires T to be default-constructible");
17template<>
inline double na<double>() {
return std::numeric_limits<double>::quiet_NaN(); }
18template<>
inline int na<int>() {
return std::numeric_limits<int>::min(); }
19template<>
inline int64_t
na<int64_t>() {
return std::numeric_limits<int64_t>::min(); }
20template<>
inline bool na<bool>() {
return false; }
22inline bool is_na(
double v) {
return std::isnan(v); }
25template<
typename T,
typename = std::enable_if_t<std::is_
integral_v<T> && !std::is_same_v<T,
bool>>>
26inline bool is_na(T v) {
return v == std::numeric_limits<T>::min(); }
bool is_na(const Line &h)