1*695138caSHui //===----------------------------------------------------------------------===// 2*695138caSHui // 3*695138caSHui // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*695138caSHui // See https://llvm.org/LICENSE.txt for license information. 5*695138caSHui // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*695138caSHui // 7*695138caSHui //===----------------------------------------------------------------------===// 8*695138caSHui // 9*695138caSHui // UNSUPPORTED: no-threads 10*695138caSHui // UNSUPPORTED: c++03, c++11, c++14, c++17 11*695138caSHui // XFAIL: availability-synchronization_library-missing 12*695138caSHui 13*695138caSHui // [[nodiscard]] static unsigned int hardware_concurrency() noexcept; 14*695138caSHui 15*695138caSHui #include <cassert> 16*695138caSHui #include <concepts> 17*695138caSHui #include <thread> 18*695138caSHui #include <type_traits> 19*695138caSHui 20*695138caSHui #include "test_macros.h" 21*695138caSHui 22*695138caSHui static_assert(noexcept(std::jthread::hardware_concurrency())); 23*695138caSHui 24*695138caSHui int main(int, char**) { 25*695138caSHui std::same_as<unsigned int> decltype(auto) result = std::jthread::hardware_concurrency(); 26*695138caSHui assert(result == std::thread::hardware_concurrency()); 27*695138caSHui 28*695138caSHui return 0; 29*695138caSHui } 30