Blender
V4.3
source
blender
blenlib
BLI_binary_search.hh
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2023 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
5
#pragma once
6
11
#include <algorithm>
12
13
#include "
BLI_utildefines.h
"
14
15
namespace
blender::binary_search
{
16
22
template
<
typename
Iterator,
typename
Predicate>
23
int64_t
find_predicate_begin
(Iterator begin, Iterator end, Predicate &&predicate)
24
{
25
return
std::lower_bound(begin,
26
end,
27
nullptr
,
28
[&](
const
auto
&value,
void
*
/*dummy*/
) {
return
!predicate(value); }) -
29
begin;
30
}
31
32
template
<
typename
Range,
typename
Predicate>
33
int64_t
find_predicate_begin
(
const
Range &range, Predicate &&predicate)
34
{
35
return
find_predicate_begin
(range.begin(), range.end(), predicate);
36
}
37
38
}
// namespace blender::binary_search
BLI_utildefines.h
blender::binary_search
Definition
BLI_binary_search.hh:15
blender::binary_search::find_predicate_begin
int64_t find_predicate_begin(Iterator begin, Iterator end, Predicate &&predicate)
Definition
BLI_binary_search.hh:23
int64_t
__int64 int64_t
Definition
stdint.h:89
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0