1854fa44bSDimitry Andric// -*- C++ -*-
2854fa44bSDimitry Andric//===-------------------------- algorithm ---------------------------------===//
3854fa44bSDimitry Andric//
4854fa44bSDimitry Andric//                     The LLVM Compiler Infrastructure
5854fa44bSDimitry Andric//
6854fa44bSDimitry Andric// This file is dual licensed under the MIT and the University of Illinois Open
7854fa44bSDimitry Andric// Source Licenses. See LICENSE.TXT for details.
8854fa44bSDimitry Andric//
9854fa44bSDimitry Andric//===----------------------------------------------------------------------===//
10854fa44bSDimitry Andric
11854fa44bSDimitry Andric#ifndef _LIBCPP_EXPERIMENTAL_ALGORITHM
12854fa44bSDimitry Andric#define _LIBCPP_EXPERIMENTAL_ALGORITHM
13854fa44bSDimitry Andric
14854fa44bSDimitry Andric/*
15854fa44bSDimitry Andric   experimental/algorithm synopsis
16854fa44bSDimitry Andric
17854fa44bSDimitry Andric#include <algorithm>
18854fa44bSDimitry Andric
19854fa44bSDimitry Andricnamespace std {
20854fa44bSDimitry Andricnamespace experimental {
21854fa44bSDimitry Andricinline namespace fundamentals_v1 {
22854fa44bSDimitry Andric
23854fa44bSDimitry Andrictemplate <class ForwardIterator, class Searcher>
24854fa44bSDimitry AndricForwardIterator search(ForwardIterator first, ForwardIterator last,
25854fa44bSDimitry Andric                       const Searcher &searcher);
26*4ba319b5SDimitry Andric
27*4ba319b5SDimitry Andric// sample removed because it's now part of C++17
28854fa44bSDimitry Andric
29854fa44bSDimitry Andric} // namespace fundamentals_v1
30854fa44bSDimitry Andric} // namespace experimental
31854fa44bSDimitry Andric} // namespace std
32854fa44bSDimitry Andric
33854fa44bSDimitry Andric*/
34854fa44bSDimitry Andric
35854fa44bSDimitry Andric#include <experimental/__config>
36854fa44bSDimitry Andric#include <algorithm>
37854fa44bSDimitry Andric#include <type_traits>
38854fa44bSDimitry Andric
39854fa44bSDimitry Andric#include <__debug>
40854fa44bSDimitry Andric
41854fa44bSDimitry Andric#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
42854fa44bSDimitry Andric#pragma GCC system_header
43854fa44bSDimitry Andric#endif
44854fa44bSDimitry Andric
45f9448bf3SDimitry Andric_LIBCPP_PUSH_MACROS
46f9448bf3SDimitry Andric#include <__undef_macros>
47854fa44bSDimitry Andric
48854fa44bSDimitry Andric
49f9448bf3SDimitry Andric_LIBCPP_BEGIN_NAMESPACE_LFTS
50f9448bf3SDimitry Andric
519729cf09SDimitry Andrictemplate <class _ForwardIterator, class _Searcher>
529729cf09SDimitry Andric_LIBCPP_INLINE_VISIBILITY
539729cf09SDimitry Andric_ForwardIterator search(_ForwardIterator __f, _ForwardIterator __l, const _Searcher &__s)
547c82a1ecSDimitry Andric{ return __s(__f, __l).first; }
559729cf09SDimitry Andric
56854fa44bSDimitry Andric_LIBCPP_END_NAMESPACE_LFTS
57854fa44bSDimitry Andric
58f9448bf3SDimitry Andric_LIBCPP_POP_MACROS
59f9448bf3SDimitry Andric
60854fa44bSDimitry Andric#endif /* _LIBCPP_EXPERIMENTAL_ALGORITHM */
61