+2019-02-28 Mark Lam <mark.lam@apple.com>
+
+ Change CheckedArithmetic to not use std::enable_if_t.
+ https://bugs.webkit.org/show_bug.cgi?id=195187
+ <rdar://problem/48464665>
+
+ Reviewed by Keith Miller.
+
+ Because C++11 does not like std::enable_if_t and there's a need to use this file with C++11.
+
+ * wtf/CheckedArithmetic.h:
+
2019-02-27 Simon Fraser <simon.fraser@apple.com>
Roll out r242014; it caused crashes in compositing logging (webkit.org/b/195141)
}
};
-template <class OverflowHandler, typename = std::enable_if_t<!std::is_scalar<OverflowHandler>::value>>
+template <class OverflowHandler, typename = typename std::enable_if<!std::is_scalar<OverflowHandler>::value>::type>
inline constexpr bool observesOverflow() { return true; }
template <>
return true;
}
-template <class OverflowHandler, typename U, typename V, typename R, typename = std::enable_if_t<!std::is_scalar<OverflowHandler>::value>>
+template <class OverflowHandler, typename U, typename V, typename R, typename = typename std::enable_if<!std::is_scalar<OverflowHandler>::value>::type>
static inline bool safeAdd(U lhs, V rhs, R& result)
{
if (observesOverflow<OverflowHandler>())
return ArithmeticOperations<U, V, R>::sub(lhs, rhs, result);
}
-template <class OverflowHandler, typename U, typename V, typename R, typename = std::enable_if_t<!std::is_scalar<OverflowHandler>::value>>
+template <class OverflowHandler, typename U, typename V, typename R, typename = typename std::enable_if<!std::is_scalar<OverflowHandler>::value>::type>
static inline bool safeSub(U lhs, V rhs, R& result)
{
if (observesOverflow<OverflowHandler>())
return ArithmeticOperations<U, V, R>::multiply(lhs, rhs, result);
}
-template <class OverflowHandler, typename U, typename V, typename R, typename = std::enable_if_t<!std::is_scalar<OverflowHandler>::value>>
+template <class OverflowHandler, typename U, typename V, typename R, typename = typename std::enable_if<!std::is_scalar<OverflowHandler>::value>::type>
static inline bool safeMultiply(U lhs, V rhs, R& result)
{
if (observesOverflow<OverflowHandler>())