blob: de52b1d00cdf3cc570c698206d39d5736087068e [file] [log] [blame]
Howard Hinnant3e519522010-05-11 19:42:16 +00001//===----------------------------------------------------------------------===//
2//
Howard Hinnant5b08a8a2010-05-11 21:36:01 +00003// The LLVM Compiler Infrastructure
Howard Hinnant3e519522010-05-11 19:42:16 +00004//
Howard Hinnant412dbeb2010-11-16 22:09:02 +00005// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
Howard Hinnant3e519522010-05-11 19:42:16 +00007//
8//===----------------------------------------------------------------------===//
Jonathan Roelofsb3fcc672014-09-05 19:45:05 +00009//
10// UNSUPPORTED: libcpp-has-no-threads
Howard Hinnant3e519522010-05-11 19:42:16 +000011
12// <thread>
13
14// class thread::id
15
16// bool operator< (thread::id x, thread::id y);
17// bool operator<=(thread::id x, thread::id y);
18// bool operator> (thread::id x, thread::id y);
19// bool operator>=(thread::id x, thread::id y);
20
21#include <thread>
22#include <cassert>
23
24int main()
25{
26 std::thread::id id0;
27 std::thread::id id1;
28 std::thread::id id2 = std::this_thread::get_id();
29 assert(!(id0 < id1));
30 assert( (id0 <= id1));
31 assert(!(id0 > id1));
32 assert( (id0 >= id1));
Howard Hinnant7fe64412014-02-04 19:51:48 +000033 assert(!(id0 == id2));
34 if (id0 < id2) {
35 assert( (id0 <= id2));
36 assert(!(id0 > id2));
37 assert(!(id0 >= id2));
38 } else {
39 assert(!(id0 <= id2));
40 assert( (id0 > id2));
41 assert( (id0 >= id2));
42 }
Howard Hinnant3e519522010-05-11 19:42:16 +000043}