source: doc/papers/OOPSLA17/evaluation/cpp-pair.hpp

Last change on this file was f4e3419d, checked in by Peter A. Buhr <pabuhr@…>, 4 years ago

restructure paper documents

  • Property mode set to 100644
File size: 879 bytes
Line 
1#pragma once
2#include <utility>
3
4template<typename R, typename S> struct pair {
5        R first;
6        S second;
7
8        pair() = default;
9        pair( R&& x, S&& y ) : first( std::move(x) ), second( std::move(y) ) {}
10
11        bool operator< (const pair<R, S>& o) const {
12                return first < o.first || ( first == o.first && second < o.second );
13        }
14
15        bool operator<= (const pair<R, S>& o) const {
16                return first < o.first || ( first == o.first && second <= o.second );
17        }
18
19        bool operator== (const pair<R, S>& o) const { return first == o.first && second == o.second; }
20
21        bool operator!= (const pair<R, S>& o) const { return first != o.first || second != o.second; }
22
23        bool operator> (const pair<R, S>& o) const {
24                return first > o.first || ( first == o.first && second > o.second );
25        }
26
27        bool operator>= (const pair<R, S>& o) const {
28                return first > o.first || ( first == o.first && second >= o.second );
29        }
30};
Note: See TracBrowser for help on using the repository browser.