xref: /openbsd-src/gnu/llvm/libcxx/include/experimental/algorithm (revision 4bdff4bed0e3d54e55670334c7d0077db4170f86)
146035553Spatrick// -*- C++ -*-
2*4bdff4beSrobert//===----------------------------------------------------------------------===//
346035553Spatrick//
446035553Spatrick// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
546035553Spatrick// See https://llvm.org/LICENSE.txt for license information.
646035553Spatrick// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
746035553Spatrick//
846035553Spatrick//===----------------------------------------------------------------------===//
946035553Spatrick
1046035553Spatrick#ifndef _LIBCPP_EXPERIMENTAL_ALGORITHM
1146035553Spatrick#define _LIBCPP_EXPERIMENTAL_ALGORITHM
1246035553Spatrick
1346035553Spatrick/*
1446035553Spatrick   experimental/algorithm synopsis
1546035553Spatrick
1646035553Spatrick#include <algorithm>
1746035553Spatrick
1846035553Spatricknamespace std {
1946035553Spatricknamespace experimental {
2046035553Spatrickinline namespace fundamentals_v1 {
2146035553Spatrick
2246035553Spatricktemplate <class ForwardIterator, class Searcher>
2346035553SpatrickForwardIterator search(ForwardIterator first, ForwardIterator last,
2446035553Spatrick                       const Searcher &searcher);
2546035553Spatrick
2646035553Spatrick// sample removed because it's now part of C++17
2746035553Spatrick
2846035553Spatrick} // namespace fundamentals_v1
2946035553Spatrick} // namespace experimental
3046035553Spatrick} // namespace std
3146035553Spatrick
3246035553Spatrick*/
3346035553Spatrick
34*4bdff4beSrobert#include <__assert> // all public C++ headers provide the assertion handler
3546035553Spatrick#include <__debug>
36*4bdff4beSrobert#include <algorithm>
37*4bdff4beSrobert#include <experimental/__config>
38*4bdff4beSrobert#include <type_traits>
3946035553Spatrick
4046035553Spatrick#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
4146035553Spatrick#  pragma GCC system_header
4246035553Spatrick#endif
4346035553Spatrick
4446035553Spatrick_LIBCPP_BEGIN_NAMESPACE_LFTS
4546035553Spatrick
4646035553Spatricktemplate <class _ForwardIterator, class _Searcher>
4746035553Spatrick_LIBCPP_INLINE_VISIBILITY
4846035553Spatrick_ForwardIterator search(_ForwardIterator __f, _ForwardIterator __l, const _Searcher &__s)
4946035553Spatrick{ return __s(__f, __l).first; }
5046035553Spatrick
5146035553Spatrick_LIBCPP_END_NAMESPACE_LFTS
5246035553Spatrick
5346035553Spatrick#endif /* _LIBCPP_EXPERIMENTAL_ALGORITHM */
54