source:
doc/papers/OOPSLA17/evaluation/cpp-pair.hpp@
6b00c53
Last change on this file since 6b00c53 was f4e3419d, checked in by , 8 years ago | |
---|---|
|
|
File size: 879 bytes |
Rev | Line | |
---|---|---|
[d87ade9] | 1 | #pragma once |
2 | #include <utility> | |
3 | ||
4 | template<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.