Integer<T>
Description
A type fulfills the requirements of an Integer if it has the
properties of a integer.
More specifically, a type T is Integer if there exists a
specialization of std::numeric_limits<T> for which
std::numeric_limits<T>::is_integer is equal to
true. See the documentation for standard library class
numeric_limits. The standard library includes such
specializations for all built-in numeric types. Note that this concept is
distinct from the C++ standard library type traits
is_integral and is_arithmetic. These latter
fulfill the requirements of the concept Numeric. But there are types which
fulfill this concept for which is_arithmetic<T>::value ==
false. For example see safe<int>.
Notation
T, U, V
A type that is a model of an Integer type
t, u
An object of type modeling an Integer type
OS, IS
A type that is a model of an output or input stream
os, is
An object of a type modeling output or input stream
Valid Expressions
In addition to the expressions defined in Integer, the following
expression must be true.
General
Expression
Value
std::numeric_limits<T>::is_integer
true
Any or all of the following unary operators MAY be defined. Any
such defined operators shall implement the semantics as described
below
Unary Operator
Expression
Return Type
Semantics
~t
T
bitwise complement
Any or all of the following binary operators MAY be defined. Any
defined operators shall implement the semantics as described bellow
Binary Operators
Expression
Return Type
Semantics
t % u
T
t modulus u. t can be a Numeric type.
t << u
T
shift t left u bits
t >> u
T
shift t right by u bits
t & u
V
and of t and u padded out to max # bits in t, u
t | u
V
or of t and u padded out to max # bits in t, u
t ^ u
V
exclusive or of t and u padded out to max # bits in t,
u
t <<= u
T
left shift the value of t by u bits
t >>= u
T
right shift the value of t by u bits
t &= u
T
and the value of t with u and assign to t
t |= u
T
or the value of t with u and assign to t
t ^= u
T
exclusive or the value of t with u and assign to
t
os << t
OS &
write contents of t to output stream
is >> t
IS &
read contents of an input stream into t
Models
int, safe<int>, safe_unsigned_range<0, 11>,
checked_result<int> etc.
Header
#include
<boost/safe_numerics/concepts/integer.hpp>