1 //===----------------------------------------------------------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 // 9 // UNSUPPORTED: libcpp-has-no-threads 10 11 // <thread> 12 13 // class thread::id 14 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 // bool operator>=(thread::id x, thread::id y); 19 20 #include <thread> 21 #include <cassert> 22 23 int main(int, char**) 24 { 25 std::thread::id id0; 26 std::thread::id id1; 27 std::thread::id id2 = std::this_thread::get_id(); 28 assert(!(id0 < id1)); 29 assert( (id0 <= id1)); 30 assert(!(id0 > id1)); 31 assert( (id0 >= id1)); 32 assert(!(id0 == id2)); 33 if (id0 < id2) { 34 assert( (id0 <= id2)); 35 assert(!(id0 > id2)); 36 assert(!(id0 >= id2)); 37 } else { 38 assert(!(id0 <= id2)); 39 assert( (id0 > id2)); 40 assert( (id0 >= id2)); 41 } 42 43 return 0; 44 } 45