#pragma once #include "tl/detail/prologue.h" #include "tl/iterator.h" #include namespace tl { ////////////////////////////////////////////////////////////////////////// // search() // // Container-based version of the `std::search()` function to search // a container for a subsequence. template auto search(Sequence1& sequence, Sequence2& subsequence) noexcept -> decltype(tl::begin(sequence)); // Overload of search() for using a predicate evaluation other than // `==` as the function's test condition. template auto search(Sequence1& sequence, Sequence2& subsequence, BinaryPredicate&& pred) noexcept -> decltype(tl::begin(sequence)); // search_n() // // Container-based version of the `std::search_n()` function to // search a container for the first sequence of N elements. template auto search_n(Sequence& sequence, Size count, T&& value) noexcept -> decltype(tl::begin(sequence)); // Overload of search_n() for using a predicate evaluation other than // `==` as the function's test condition. template auto search_n(Sequence& sequence, Size count, T&& value, BinaryPredicate&& pred) noexcept -> decltype(tl::begin(sequence)); ////////////////////////////////////////////////////////////////////////// } // end namespace tl