5#include <xrpl/beast/hash/hash_append.h>
7#include <boost/operators.hpp>
25template <
class Int,
class Tag>
27 TaggedInteger<Int, Tag>,
28 boost::integer_arithmetic<
29 TaggedInteger<Int, Tag>,
31 TaggedInteger<Int, Tag>,
32 boost::unit_steppable<
33 TaggedInteger<Int, Tag>,
34 boost::shiftable<TaggedInteger<Int, Tag>>>>>>
50 static_assert(
sizeof(
TaggedInteger) ==
sizeof(Int),
"tagged_integer is adding padding");
56 return value_ < rhs.value_;
62 return value_ == rhs.value_;
168 operator Int() const noexcept
197template <
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
constexpr TaggedInteger(OtherInt value) 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
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