1 //===----------------------------------------------------------------------===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 // <thread>
11 
12 // class thread::id
13 
14 // bool operator< (thread::id x, thread::id y);
15 // bool operator<=(thread::id x, thread::id y);
16 // bool operator> (thread::id x, thread::id y);
17 // bool operator>=(thread::id x, thread::id y);
18 
19 #include <thread>
20 #include <cassert>
21 
main()22 int main()
23 {
24     std::thread::id id0;
25     std::thread::id id1;
26     std::thread::id id2 = std::this_thread::get_id();
27     assert(!(id0 <  id1));
28     assert( (id0 <= id1));
29     assert(!(id0 >  id1));
30     assert( (id0 >= id1));
31     assert(!(id0 == id2));
32     if (id0 < id2) {
33       assert( (id0 <= id2));
34       assert(!(id0 >  id2));
35       assert(!(id0 >= id2));
36     } else {
37       assert(!(id0 <= id2));
38       assert( (id0 >  id2));
39       assert( (id0 >= id2));
40     }
41 }
42