1732e2681SEvgeniy Stepanov// -*- C++ -*-
2eb8650a7SLouis Dionne//===----------------------------------------------------------------------===//
3732e2681SEvgeniy Stepanov//
457b08b09SChandler Carruth// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
557b08b09SChandler Carruth// See https://llvm.org/LICENSE.txt for license information.
657b08b09SChandler Carruth// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7732e2681SEvgeniy Stepanov//
8732e2681SEvgeniy Stepanov//===----------------------------------------------------------------------===//
9732e2681SEvgeniy Stepanov
10732e2681SEvgeniy Stepanov#ifndef _LIBCPP_EXPERIMENTAL_ALGORITHM
11732e2681SEvgeniy Stepanov#define _LIBCPP_EXPERIMENTAL_ALGORITHM
12732e2681SEvgeniy Stepanov
13732e2681SEvgeniy Stepanov/*
14732e2681SEvgeniy Stepanov   experimental/algorithm synopsis
15732e2681SEvgeniy Stepanov
16732e2681SEvgeniy Stepanov#include <algorithm>
17732e2681SEvgeniy Stepanov
18732e2681SEvgeniy Stepanovnamespace std {
19732e2681SEvgeniy Stepanovnamespace experimental {
20732e2681SEvgeniy Stepanovinline namespace fundamentals_v1 {
21732e2681SEvgeniy Stepanov
22732e2681SEvgeniy Stepanovtemplate <class ForwardIterator, class Searcher>
23732e2681SEvgeniy StepanovForwardIterator search(ForwardIterator first, ForwardIterator last,
24732e2681SEvgeniy Stepanov                       const Searcher &searcher);
2514082fccSMarshall Clow
2614082fccSMarshall Clow// sample removed because it's now part of C++17
27732e2681SEvgeniy Stepanov
28732e2681SEvgeniy Stepanov} // namespace fundamentals_v1
29732e2681SEvgeniy Stepanov} // namespace experimental
30732e2681SEvgeniy Stepanov} // namespace std
31732e2681SEvgeniy Stepanov
32732e2681SEvgeniy Stepanov*/
33732e2681SEvgeniy Stepanov
34*385cc25aSLouis Dionne#include <__assert> // all public C++ headers provide the assertion handler
35732e2681SEvgeniy Stepanov#include <__debug>
364d81a46fSArthur O'Dwyer#include <algorithm>
374d81a46fSArthur O'Dwyer#include <experimental/__config>
384d81a46fSArthur O'Dwyer#include <type_traits>
39732e2681SEvgeniy Stepanov
40732e2681SEvgeniy Stepanov#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
41732e2681SEvgeniy Stepanov#  pragma GCC system_header
42732e2681SEvgeniy Stepanov#endif
43732e2681SEvgeniy Stepanov
44a016efb1SEric Fiselier_LIBCPP_BEGIN_NAMESPACE_LFTS
45a016efb1SEric Fiselier
4681416e49SMarshall Clowtemplate <class _ForwardIterator, class _Searcher>
4781416e49SMarshall Clow_LIBCPP_INLINE_VISIBILITY
4881416e49SMarshall Clow_ForwardIterator search(_ForwardIterator __f, _ForwardIterator __l, const _Searcher &__s)
4928cc4ddeSMarshall Clow{ return __s(__f, __l).first; }
5081416e49SMarshall Clow
51732e2681SEvgeniy Stepanov_LIBCPP_END_NAMESPACE_LFTS
52732e2681SEvgeniy Stepanov
53732e2681SEvgeniy Stepanov#endif /* _LIBCPP_EXPERIMENTAL_ALGORITHM */
54