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: no-threads
10// UNSUPPORTED: c++03, c++11, c++14, c++17
11
12// <latch>
13
14// inline constexpr explicit latch(ptrdiff_t __expected);
15
16// Make sure that the ctor of latch is constexpr and explicit.
17
18#include <latch>
19
20#include "test_convertible.h"
21
22static_assert(!test_convertible<std::latch, std::ptrdiff_t>(), "This constructor must be explicit");
23
24constexpr bool test() {
25 std::latch l(5);
26 (void)l;
27 return true;
28}
29
30int main(int, char**) {
31 test();
32 static_assert(test(), "");
33
34 return 0;
35}
36

Provided by KDAB

Privacy Policy
Learn to use CMake with our Intro Training
Find out more

source code of libcxx/test/std/thread/thread.latch/ctor.pass.cpp