1*0b57cec5SDimitry Andric// -*- C++ -*- 2*0b57cec5SDimitry Andric//===-------------------------- algorithm ---------------------------------===// 3*0b57cec5SDimitry Andric// 4*0b57cec5SDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5*0b57cec5SDimitry Andric// See https://llvm.org/LICENSE.txt for license information. 6*0b57cec5SDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7*0b57cec5SDimitry Andric// 8*0b57cec5SDimitry Andric//===----------------------------------------------------------------------===// 9*0b57cec5SDimitry Andric 10*0b57cec5SDimitry Andric#ifndef _LIBCPP_EXPERIMENTAL_ALGORITHM 11*0b57cec5SDimitry Andric#define _LIBCPP_EXPERIMENTAL_ALGORITHM 12*0b57cec5SDimitry Andric 13*0b57cec5SDimitry Andric/* 14*0b57cec5SDimitry Andric experimental/algorithm synopsis 15*0b57cec5SDimitry Andric 16*0b57cec5SDimitry Andric#include <algorithm> 17*0b57cec5SDimitry Andric 18*0b57cec5SDimitry Andricnamespace std { 19*0b57cec5SDimitry Andricnamespace experimental { 20*0b57cec5SDimitry Andricinline namespace fundamentals_v1 { 21*0b57cec5SDimitry Andric 22*0b57cec5SDimitry Andrictemplate <class ForwardIterator, class Searcher> 23*0b57cec5SDimitry AndricForwardIterator search(ForwardIterator first, ForwardIterator last, 24*0b57cec5SDimitry Andric const Searcher &searcher); 25*0b57cec5SDimitry Andric 26*0b57cec5SDimitry Andric// sample removed because it's now part of C++17 27*0b57cec5SDimitry Andric 28*0b57cec5SDimitry Andric} // namespace fundamentals_v1 29*0b57cec5SDimitry Andric} // namespace experimental 30*0b57cec5SDimitry Andric} // namespace std 31*0b57cec5SDimitry Andric 32*0b57cec5SDimitry Andric*/ 33*0b57cec5SDimitry Andric 34*0b57cec5SDimitry Andric#include <experimental/__config> 35*0b57cec5SDimitry Andric#include <algorithm> 36*0b57cec5SDimitry Andric#include <type_traits> 37*0b57cec5SDimitry Andric 38*0b57cec5SDimitry Andric#include <__debug> 39*0b57cec5SDimitry Andric 40*0b57cec5SDimitry Andric#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 41*0b57cec5SDimitry Andric#pragma GCC system_header 42*0b57cec5SDimitry Andric#endif 43*0b57cec5SDimitry Andric 44*0b57cec5SDimitry Andric_LIBCPP_PUSH_MACROS 45*0b57cec5SDimitry Andric#include <__undef_macros> 46*0b57cec5SDimitry Andric 47*0b57cec5SDimitry Andric 48*0b57cec5SDimitry Andric_LIBCPP_BEGIN_NAMESPACE_LFTS 49*0b57cec5SDimitry Andric 50*0b57cec5SDimitry Andrictemplate <class _ForwardIterator, class _Searcher> 51*0b57cec5SDimitry Andric_LIBCPP_INLINE_VISIBILITY 52*0b57cec5SDimitry Andric_ForwardIterator search(_ForwardIterator __f, _ForwardIterator __l, const _Searcher &__s) 53*0b57cec5SDimitry Andric{ return __s(__f, __l).first; } 54*0b57cec5SDimitry Andric 55*0b57cec5SDimitry Andric_LIBCPP_END_NAMESPACE_LFTS 56*0b57cec5SDimitry Andric 57*0b57cec5SDimitry Andric_LIBCPP_POP_MACROS 58*0b57cec5SDimitry Andric 59*0b57cec5SDimitry Andric#endif /* _LIBCPP_EXPERIMENTAL_ALGORITHM */ 60