SyDEVS
v0.6.7
Multiscale Simulation and Systems Modeling Library
|
A data type which identifies an item by combining an encapsulated integer-valued index with a dimension supplied by a template parameter. More...
#include <identity.h>
Public Member Functions | |
constexpr | identity () |
Constructs an invalid identity value. More... | |
constexpr | identity (int64 index) |
Constructs an identity value with the specified index . More... | |
constexpr | identity (const identity &)=default |
Copy constructor. More... | |
identity & | operator= (const identity &)=default |
Copy assignment. More... | |
identity (identity &&)=default | |
Move constructor. More... | |
identity & | operator= (identity &&)=default |
Move assignment. More... | |
~identity ()=default | |
Destructor. More... | |
constexpr bool | valid () const |
Returns true if the identity value is valid. More... | |
constexpr int64 | index () const |
Returns the internal index. More... | |
identity & | operator++ () |
Increments (prefix) the internal index. More... | |
identity | operator++ (int) |
Increments (postfix) the internal index. More... | |
identity & | operator-- () |
Decrements (prefix) the internal index. More... | |
identity | operator-- (int) |
Decrements (postfix) the internal index. More... | |
identity & | operator+= (int64 rhs) |
Adds rhs to the identity value. More... | |
identity & | operator-= (int64 rhs) |
Subtracts rhs from the identity value. More... | |
constexpr const identity | operator+ () const |
Returns a copy of the identity value. More... | |
constexpr const identity | operator+ (int64 rhs) const |
Returns a new identity value with rhs added. More... | |
constexpr const identity | operator- (int64 rhs) const |
Returns a new identity value with rhs subtracted. More... | |
constexpr bool | operator== (identity rhs) const |
Returns true if the identity value equals rhs . More... | |
constexpr bool | operator!= (identity rhs) const |
Returns true if the identity value does not equal rhs . More... | |
constexpr bool | operator< (identity rhs) const |
Returns true if the identity value is less than rhs . More... | |
constexpr bool | operator> (identity rhs) const |
Returns true if the identity value is greater than rhs . More... | |
constexpr bool | operator<= (identity rhs) const |
Returns true if the identity value is at most rhs . More... | |
constexpr bool | operator>= (identity rhs) const |
Returns true if the identity value is at least rhs . More... | |
Static Protected Attributes | |
static constexpr int64 | nan_int64 = std::numeric_limits<int64>::min() |
A data type which identifies an item by combining an encapsulated integer-valued index with a dimension supplied by a template parameter.
An identity
value is essentially a dimensioned integer, where the units are provided by the template parameter U
. An simple example of how to instantiate an identity
value is below.
A default-constructed identity
value is invalid. For these values, the valid
member function returns false
and the index
member function returns the most negative representable 64-bit signed integer. For valid identity
values, the class supports increment and decrement operations, as well as standard plus and minus operators that offset the encapsulated index by an integer.
constexpr sydevs::identity< U >::identity | ( | ) |
Constructs an invalid identity
value.
|
explicit |
Constructs an identity
value with the specified index
.
|
default |
Copy constructor.
|
default |
Move constructor.
|
default |
Destructor.
constexpr int64 sydevs::identity< U >::index | ( | ) | const |
Returns the internal index.
constexpr bool sydevs::identity< U >::operator!= | ( | identity< U > | rhs | ) | const |
Returns true
if the identity
value does not equal rhs
.
constexpr const identity< U > sydevs::identity< U >::operator+ | ( | ) | const |
Returns a copy of the identity
value.
constexpr const identity< U > sydevs::identity< U >::operator+ | ( | int64 | rhs | ) | const |
Returns a new identity
value with rhs
added.
identity< U > & sydevs::identity< U >::operator++ | ( | ) |
Increments (prefix) the internal index.
identity< U > sydevs::identity< U >::operator++ | ( | int | ) |
Increments (postfix) the internal index.
identity< U > & sydevs::identity< U >::operator+= | ( | int64 | rhs | ) |
Adds rhs
to the identity
value.
constexpr const identity< U > sydevs::identity< U >::operator- | ( | int64 | rhs | ) | const |
Returns a new identity
value with rhs
subtracted.
identity< U > & sydevs::identity< U >::operator-- | ( | ) |
Decrements (prefix) the internal index.
identity< U > sydevs::identity< U >::operator-- | ( | int | ) |
Decrements (postfix) the internal index.
identity< U > & sydevs::identity< U >::operator-= | ( | int64 | rhs | ) |
Subtracts rhs
from the identity
value.
constexpr bool sydevs::identity< U >::operator< | ( | identity< U > | rhs | ) | const |
Returns true
if the identity
value is less than rhs
.
constexpr bool sydevs::identity< U >::operator<= | ( | identity< U > | rhs | ) | const |
Returns true
if the identity
value is at most rhs
.
|
default |
Copy assignment.
|
default |
Move assignment.
constexpr bool sydevs::identity< U >::operator== | ( | identity< U > | rhs | ) | const |
Returns true
if the identity
value equals rhs
.
constexpr bool sydevs::identity< U >::operator> | ( | identity< U > | rhs | ) | const |
Returns true
if the identity
value is greater than rhs
.
constexpr bool sydevs::identity< U >::operator>= | ( | identity< U > | rhs | ) | const |
Returns true
if the identity
value is at least rhs
.
constexpr bool sydevs::identity< U >::valid | ( | ) | const |
Returns true
if the identity
value is valid.
|
staticprotected |