diff options
author | Marco Trevisan (TreviƱo) <mail@3v1n0.net> | 2020-08-10 18:58:08 +0200 |
---|---|---|
committer | Philip Chimento <philip.chimento@gmail.com> | 2020-08-22 18:25:54 -0700 |
commit | b0ea57d30c14268a16932cdf7589900b00f34fee (patch) | |
tree | 2855534ac625f61e0b405f932fa733e4422fe9b0 /gi/arg-inl.h | |
parent | e087bec80c5c170299c1758cb03fec443e9539ec (diff) | |
download | gjs-b0ea57d30c14268a16932cdf7589900b00f34fee.tar.gz |
arg-inl: Use more constexpr functions and constexpr checks
Diffstat (limited to 'gi/arg-inl.h')
-rw-r--r-- | gi/arg-inl.h | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/gi/arg-inl.h b/gi/arg-inl.h index 952260c5..06330884 100644 --- a/gi/arg-inl.h +++ b/gi/arg-inl.h @@ -166,19 +166,15 @@ inline void gjs_arg_unset(GIArgument* arg) { // Implementation to store rounded (u)int64_t numbers into double template <typename BigT> -[[nodiscard]] inline BigT max_safe_big_number() { +[[nodiscard]] inline constexpr BigT max_safe_big_number() { return BigT(1) << std::numeric_limits<double>::digits; } template <typename BigT> -[[nodiscard]] inline std::enable_if_t<std::is_signed_v<BigT>, BigT> -min_safe_big_number() { - return -(max_safe_big_number<BigT>()) + 1; -} +[[nodiscard]] inline constexpr BigT min_safe_big_number() { + if constexpr (std::is_signed_v<BigT>) + return -(max_safe_big_number<BigT>()) + 1; -template <typename BigT> -[[nodiscard]] inline std::enable_if_t<std::is_unsigned_v<BigT>, BigT> -min_safe_big_number() { return std::numeric_limits<BigT>::lowest(); } |