|
| template<typename T > |
| constexpr T | o3tl::saturating_add (T a, T b) |
| |
| template<typename T > |
| constexpr T | o3tl::saturating_sub (T a, T b) |
| |
| template<typename T > |
| std::enable_if< std::is_signed< T >::value, T >::type | o3tl::saturating_toggle_sign (T a) |
| |
| template<typename T > |
| std::enable_if< std::is_signed< T >::value, bool >::type | o3tl::checked_multiply (T a, T b, T &result) |
| |
| template<typename T > |
| std::enable_if< std::is_unsigned< T >::value, bool >::type | o3tl::checked_multiply (T a, T b, T &result) |
| |
| template<typename T > |
| std::enable_if< std::is_signed< T >::value, bool >::type | o3tl::checked_add (T a, T b, T &result) |
| |
| template<typename T > |
| std::enable_if< std::is_unsigned< T >::value, bool >::type | o3tl::checked_add (T a, T b, T &result) |
| |
| template<typename T > |
| std::enable_if< std::is_signed< T >::value, bool >::type | o3tl::checked_sub (T a, T b, T &result) |
| |
| template<typename T > |
| std::enable_if< std::is_unsigned< T >::value, bool >::type | o3tl::checked_sub (T a, T b, T &result) |
| |
| template<typename T > |
| constexpr std::enable_if_t< std::is_signed_v< T >, std::make_unsigned_t< T > > | o3tl::make_unsigned (T value) |
| |
| template<typename T1 , typename T2 > |
| constexpr std::enable_if_t< std::is_unsigned_v< T1 >, T1 > | o3tl::clamp_to_unsigned (T2 value) |
| |
| template<typename T1 , typename T2 > |
| constexpr T1 | o3tl::narrowing (T2 value) |
| |
| template<typename T > |
| T | o3tl::sanitizing_min (T a, T b) |
| |