5#include <xrpl/beast/hash/hash_append.h>
7#include <boost/operators.hpp>
27template <
class Int,
class Tag>
29 TaggedInteger<Int, Tag>,
30 boost::integer_arithmetic<
31 TaggedInteger<Int, Tag>,
33 TaggedInteger<Int, Tag>,
34 boost::unit_steppable<
35 TaggedInteger<Int, Tag>,
36 boost::shiftable<TaggedInteger<Int, Tag>>>>>>
47 template <
class OtherInt>
52 static_assert(
sizeof(
TaggedInteger) ==
sizeof(Int),
"tagged_integer is adding padding");
58 return value_ < rhs.value_;
64 return value_ == rhs.value_;
170 operator Int() const noexcept
199template <
class Int,
class Tag,
class HashAlgorithm>
A type-safe wrap around standard integral types.
TaggedInteger & operator+=(TaggedInteger const &rhs) noexcept
TaggedInteger & operator^=(TaggedInteger const &rhs) noexcept
TaggedInteger & operator<<=(TaggedInteger const &rhs) noexcept
TaggedInteger & operator--() noexcept
TaggedInteger & operator|=(TaggedInteger const &rhs) noexcept
bool operator<(TaggedInteger const &rhs) const noexcept
TaggedInteger & operator*=(TaggedInteger const &rhs) noexcept
TaggedInteger & operator&=(TaggedInteger const &rhs) noexcept
TaggedInteger & operator/=(TaggedInteger const &rhs) noexcept
TaggedInteger & operator-=(TaggedInteger const &rhs) noexcept
TaggedInteger operator-() const noexcept
TaggedInteger & operator++() noexcept
TaggedInteger & operator>>=(TaggedInteger const &rhs) noexcept
friend std::istream & operator>>(std::istream &s, TaggedInteger &t)
friend std::string to_string(TaggedInteger const &t)
TaggedInteger & operator%=(TaggedInteger const &rhs) noexcept
TaggedInteger operator+() const noexcept
constexpr TaggedInteger(OtherInt value) noexcept
TaggedInteger operator~() const noexcept
friend std::ostream & operator<<(std::ostream &s, TaggedInteger const &t)
bool operator==(TaggedInteger const &rhs) const noexcept
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
IsContiguouslyHashable()=default