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

ADT aaron-thesis arm-eh ast-experimental cleanup-dtors deferred_resn demangler enum forall-pointer-decay jacob/cs343-translation jenkins-sandbox new-ast new-ast-unique-expr new-env no_list persistent-indexer pthread-emulation qualifiedEnum resolv-new with_gc
Last change on this file since c71b256 was f4e3419d, checked in by Peter A. Buhr <pabuhr@…>, 8 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.