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: c++03, c++11, c++14, c++17
10
11// <iterator>
12
13// template<semiregular S>
14// class move_sentinel;
15
16#include <iterator>
17
18template<class T>
19concept HasMoveSentinel = requires {
20 typename std::move_sentinel<T>;
21};
22
23struct Semiregular {};
24
25struct NotSemiregular {
26 NotSemiregular(int);
27};
28
29static_assert( HasMoveSentinel<int>);
30static_assert( HasMoveSentinel<int*>);
31static_assert( HasMoveSentinel<Semiregular>);
32static_assert(!HasMoveSentinel<NotSemiregular>);
33

source code of libcxx/test/std/iterators/predef.iterators/move.iterators/move.sentinel/constraints.compile.pass.cpp