From e19ec79f982495800a632fe5d461e953108af822 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Fri, 27 Jan 2023 14:48:41 -0800 Subject: [PATCH] safe_op: C++17 improvements Signed-off-by: Rosen Penev --- src/safe_op.hpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/safe_op.hpp b/src/safe_op.hpp index eea584b1..0a618ee1 100644 --- a/src/safe_op.hpp +++ b/src/safe_op.hpp @@ -56,8 +56,8 @@ namespace Internal { * https://wiki.sei.cmu.edu/confluence/display/c/INT32-C.+Ensure+that+operations+on+signed+integers+do+not+result+in+overflow */ template -typename std::enable_if::value && sizeof(T) >= sizeof(int), bool>::type fallback_add_overflow( - T summand_1, T summand_2, T& result) { +std::enable_if_t && sizeof(T) >= sizeof(int), bool> fallback_add_overflow(T summand_1, T summand_2, + T& result) { if (((summand_2 >= 0) && (summand_1 > std::numeric_limits::max() - summand_2)) || ((summand_2 < 0) && (summand_1 < std::numeric_limits::min() - summand_2))) { return true; @@ -86,8 +86,8 @@ typename std::enable_if::value && sizeof(T) >= sizeof(int), bo * https://wiki.sei.cmu.edu/confluence/display/c/INT02-C.+Understand+integer+conversion+rules */ template -typename std::enable_if::value && sizeof(T) < sizeof(int), bool>::type fallback_add_overflow( - T summand_1, T summand_2, T& result) { +std::enable_if_t && sizeof(T) < sizeof(int), bool> fallback_add_overflow(T summand_1, T summand_2, + T& result) { const int res = summand_1 + summand_2; if ((res > std::numeric_limits::max()) || (res < std::numeric_limits::min())) { return true; @@ -113,8 +113,7 @@ typename std::enable_if::value && sizeof(T) < sizeof(int), boo * https://wiki.sei.cmu.edu/confluence/display/c/INT30-C.+Ensure+that+unsigned+integer+operations+do+not+wrap */ template -typename std::enable_if::value, bool>::type fallback_add_overflow(T summand_1, T summand_2, - T& result) { +std::enable_if_t, bool> fallback_add_overflow(T summand_1, T summand_2, T& result) { result = summand_1 + summand_2; return result < summand_1; } @@ -224,7 +223,7 @@ T add(T summand_1, T summand_2) { * when `num == std::numeric_limits::min()`. */ template -typename std::enable_if::value, T>::type abs(T num) throw() { +std::enable_if_t, T> abs(T num) throw() { if (num == std::numeric_limits::min()) { return std::numeric_limits::max(); }