3rdParty/boost/1.78.0/libs/safe_numerics/doc/html/integer.html
| |
|
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>.
| 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 |
In addition to the expressions defined in Integer, the following expression must be true.
Table 4. 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
Table 5. 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
Table 6. 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 |
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 |
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 |
int, safe<int>, safe_unsigned_range<0, 11>, checked_result<int> etc.
#include <boost/safe_numerics/concepts/integer.hpp>
| | Copyright © 2012-2018 Robert Ramey
Subject to Boost Software License
|