#pragma once #include "asl/meta.hpp" namespace asl { template constexpr T infinity() { return __builtin_inf(); } template constexpr T nan() { return static_cast(__builtin_nanf("")); } template constexpr bool is_infinity(T f) { return __builtin_isinf(f); } template constexpr bool is_nan(T f) { return __builtin_isnan(f); } } // namespace asl