41 lines
1.5 KiB
C++
41 lines
1.5 KiB
C++
#pragma once
|
|
|
|
#include "tl/detail/prologue.h"
|
|
#include "tl/iterator.h"
|
|
|
|
#include <algorithm>
|
|
|
|
|
|
namespace tl
|
|
{
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
// search()
|
|
//
|
|
// Container-based version of the <algorithm> `std::search()` function to search
|
|
// a container for a subsequence.
|
|
template <typename Sequence1, typename Sequence2>
|
|
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 <typename Sequence1, typename Sequence2, typename BinaryPredicate>
|
|
auto search(Sequence1& sequence, Sequence2& subsequence, BinaryPredicate&& pred) noexcept -> decltype(tl::begin(sequence));
|
|
|
|
// search_n()
|
|
//
|
|
// Container-based version of the <algorithm> `std::search_n()` function to
|
|
// search a container for the first sequence of N elements.
|
|
template <typename Sequence, typename Size, typename T>
|
|
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 <typename Sequence, typename Size, typename T, typename BinaryPredicate>
|
|
auto search_n(Sequence& sequence, Size count, T&& value, BinaryPredicate&& pred) noexcept -> decltype(tl::begin(sequence));
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
} // end namespace tl
|