15 public boost::totally_ordered<SequenceNumber>,
16 public boost::additive<SequenceNumber>
19 using value_type = uint16_t;
20 static constexpr value_type max = std::numeric_limits<value_type>::max();
22 SequenceNumber() : m_number(0) {}
23 explicit SequenceNumber(value_type number) : m_number(number) {}
24 explicit operator value_type()
const {
return m_number; }
25 bool operator<(SequenceNumber other)
const;
26 bool operator==(SequenceNumber other)
const {
return m_number == other.m_number; }
27 void operator+=(SequenceNumber other) { m_number += other.m_number; }
28 void operator-=(SequenceNumber other) { m_number -= other.m_number; }
29 SequenceNumber operator++(
int);