brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · c5ea723 Raw
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