47 lines · cpp
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-exception6//7//===----------------------------------------------------------------------===//8//9// UNSUPPORTED: no-threads10// UNSUPPORTED: c++03, c++11, c++14, c++1711 12// stop_token(const stop_token&) noexcept;13 14#include <cassert>15#include <stop_token>16#include <type_traits>17 18#include "test_macros.h"19 20static_assert(std::is_nothrow_copy_constructible_v<std::stop_token>);21 22int main(int, char**) {23 {24 std::stop_source source;25 auto st = source.get_token();26 std::stop_token copy{st};27 28 assert(st == copy);29 30 assert(st.stop_possible());31 assert(!st.stop_requested());32 33 assert(copy.stop_possible());34 assert(!copy.stop_requested());35 36 source.request_stop();37 assert(st.stop_possible());38 assert(st.stop_requested());39 40 assert(copy.stop_possible());41 assert(copy.stop_requested());42 43 }44 45 return 0;46}47