We recommend using Visual Studio 2017



The latest version of this topic can be found at SafeInt::SafeInt.

Constructs a SafeInt object.

SafeInt() throw  
SafeInt (  
   const T& i  
) throw ()  
SafeInt (  
   bool b  
) throw ()  
template <typename U>  
SafeInt (  
   const SafeInt <U, E>& u  
I template <typename U>  
SafeInt (  
   const U& i  


[in] i
The value for the new SafeInt object. This must be a parameter of type T or U, depending on the constructor.

[in] b
The Boolean value for the new SafeInt object.

[in] u
A SafeInt of type U. The new SafeInt object will have the same value as u, but will be of type T.

The type of data stored in the SafeInt. This can be either a Boolean, character, or integer type. If it is an integer type, it can be signed or unsigned and be between 8 and 64 bits.

For more information about the template types T and E, see SafeInt Class.

The input parameter for the constructor, i or u, must be a Boolean, character, or integer type. If it is another type of parameter, the SafeInt class calls static_assert to indicate an invalid input parameter.

The constructors that use the template type U automatically convert the input parameter to the type specified by T. The SafeInt class converts the data without any loss of data. It reports to the error handler E if it cannot convert the data to type T without data loss.

If you create a SafeInt from a Boolean parameter, you need to initialize the value immediately. You cannot construct a SafeInt using the code SafeInt<bool> sb;. This will generate a compile error.

Header: safeint.h

Namespace: msl::utilities

SafeInt Library
SafeInt Class
SafeIntException Class