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>.
Refinement of Numeric
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 belowUnary 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 bellowBinary 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>