friend bool operator==(int l, const movable_int &r)
{ return l == r.get_int(); }
+ friend bool operator<(const movable_int &l, int r)
+ { return l.get_int() < r; }
+
+ friend bool operator<(int l, const movable_int &r)
+ { return l < r.get_int(); }
+
+ friend std::size_t hash_value(const movable_int &v)
+ { return (std::size_t)v.get_int(); }
+
private:
int m_int;
};
friend bool operator==(int l, const movable_and_copyable_int &r)
{ return l == r.get_int(); }
+ friend bool operator<(const movable_and_copyable_int &l, int r)
+ { return l.get_int() < r; }
+
+ friend bool operator<(int l, const movable_and_copyable_int &r)
+ { return l < r.get_int(); }
+
+ friend std::size_t hash_value(const movable_and_copyable_int &v)
+ { return (std::size_t)v.get_int(); }
+
private:
int m_int;
};
friend bool operator==(int l, const copyable_int &r)
{ return l == r.get_int(); }
+ friend bool operator<(const copyable_int &l, int r)
+ { return l.get_int() < r; }
+
+ friend bool operator<(int l, const copyable_int &r)
+ { return l < r.get_int(); }
+
+ friend std::size_t hash_value(const copyable_int &v)
+ { return (std::size_t)v.get_int(); }
+
private:
int m_int;
};
friend bool operator==(int l, const non_copymovable_int &r)
{ return l == r.get_int(); }
+ friend bool operator<(const non_copymovable_int &l, int r)
+ { return l.get_int() < r; }
+
+ friend bool operator<(int l, const non_copymovable_int &r)
+ { return l < r.get_int(); }
+
+ friend std::size_t hash_value(const non_copymovable_int &v)
+ { return (std::size_t)v.get_int(); }
+
private:
int m_int;
};