Exiv2
Classes | Namespaces | Functions
safe_op.hpp File Reference

Overflow checks for integers. More...

#include <limits>
#include <stdexcept>

Classes

struct  Safe::Internal::is_signed< T >
 Helper struct to determine whether a type is signed or unsigned. More...
 
struct  Safe::Internal::enable_if< B, T >
 Helper struct for SFINAE, from C++11. More...
 
struct  Safe::Internal::enable_if< true, T >
 Specialization of enable_if for the case B == true. More...
 

Namespaces

 Safe
 Arithmetic operations with overflow checks.
 
 Safe::Internal
 Helper functions for providing integer overflow checks.
 

Functions

template<typename T >
bool::type Safe::Internal::fallback_add_overflow (T summand_1, T summand_2, T &result)
 
template<typename T >
Safe::add (T summand_1, T summand_2)
 Safe addition, throws an exception on overflow. More...
 
template<typename T >
Internal::enable_if
< Internal::is_signed< T >
::VALUE, T >::type 
Safe::abs (T num) throw ()
 Calculates the absolute value of a number without producing negative values. More...
 

Detailed Description

Overflow checks for integers.

Author
Dan Čermák (D4N) dan.cermak@cgc-instruments.com
Date
14-Dec-17, D4N: created