summaryrefslogtreecommitdiff
path: root/gi/arg-inl.h
diff options
context:
space:
mode:
authorMarco Trevisan (TreviƱo) <mail@3v1n0.net>2020-08-10 18:58:08 +0200
committerPhilip Chimento <philip.chimento@gmail.com>2020-08-22 18:25:54 -0700
commitb0ea57d30c14268a16932cdf7589900b00f34fee (patch)
tree2855534ac625f61e0b405f932fa733e4422fe9b0 /gi/arg-inl.h
parente087bec80c5c170299c1758cb03fec443e9539ec (diff)
downloadgjs-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.h12
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();
}