29 Key() noexcept :
Key(static_cast<unsigned int>(-1))
34 Key(
unsigned int _key) noexcept : key(_key)
40 bool is_valid()
const noexcept
42 return key !=
static_cast<unsigned int>(-1);
46 operator unsigned int()
const noexcept
51 friend inline bool operator==(
Key const & a,
Key const & b) {
return a.key == b.key; }
52 friend inline bool operator==(
Key & a,
Key & b) {
return a.key == b.key; }
53 friend inline bool operator==(
unsigned int const & k,
Key const & b) {
return k == b.key; }
54 friend inline bool operator==(
Key const & a,
unsigned int const & k) {
return a.key == k; }
55 friend inline bool operator!=(
Key const & a,
Key const & b) {
return a.key != b.key; }
56 friend inline bool operator!=(
Key & a,
Key & b) {
return a.key != b.key; }
57 friend inline bool operator!=(
unsigned int const & k,
Key const & b) {
return k != b.key; }
58 friend inline bool operator!=(
Key const & a,
unsigned int const & k) {
return a.key != k; }
59 friend inline bool operator< (
Key const & a,
Key const & b) {
return a.key < b.key; }
60 friend inline bool operator< (
Key & a,
Key & b) {
return a.key < b.key; }
61 friend inline bool operator< (
unsigned int const & k,
Key const & b) {
return k < b.key; }
62 friend inline bool operator< (
Key const & a,
unsigned int const & k) {
return a.key < k; }
64 friend std::ostream& operator<< (std::ostream & os,
Key const & a) {
return (os << a.key); }
65 friend std::istream& operator>> (std::istream & is,
Key & a) {
return (is >> a.key); }