30 static_assert(
sizeof(std::uint64_t) >=
sizeof(std::size_t),
"index type not large enough to address all bins");
32 static_assert(
sizeof(std::uint64_t) >=
sizeof(
unsigned long long),
33 "index type not large enough to store any standard integer");
66 fIndex =
static_cast<std::uint64_t
>(index);
91 std::uint64_t old =
fIndex;
RBinIndex & operator+=(std::uint64_t a)
RBinIndex operator+(std::uint64_t a) const
RBinIndex()=default
Construct an invalid bin index.
RBinIndex(unsigned long index)
Construct a bin index for a normal bin.
RBinIndex(unsigned int index)
Construct a bin index for a normal bin.
static constexpr auto kInvalidIndex
friend bool operator<=(RBinIndex lhs, RBinIndex rhs)
friend bool operator==(RBinIndex lhs, RBinIndex rhs)
static constexpr auto kUnderflowIndex
RBinIndex operator--(int)
friend bool operator<(RBinIndex lhs, RBinIndex rhs)
RBinIndex operator++(int)
RBinIndex & operator-=(std::uint64_t a)
bool IsNormal() const
A bin index is normal iff it is not one of the special values.
static RBinIndex Overflow()
static constexpr auto kOverflowIndex
RBinIndex(long long index)
Construct a bin index for a normal bin.
friend bool operator>(RBinIndex lhs, RBinIndex rhs)
RBinIndex operator-(std::uint64_t a) const
RBinIndex(unsigned long long index)
Construct a bin index for a normal bin.
std::uint64_t GetIndex() const
Return the index for a normal bin.
RBinIndex(long index)
Construct a bin index for a normal bin.
friend bool operator>=(RBinIndex lhs, RBinIndex rhs)
friend bool operator!=(RBinIndex lhs, RBinIndex rhs)
static RBinIndex Underflow()
RBinIndex(int index)
Construct a bin index for a normal bin.
Namespace for ROOT features in testing.