36 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// <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