std::ranges:: cend
|
Definiert in Header
<ranges>
|
||
|
Definiert in Header
<iterator>
|
||
|
inline
namespace
/* unspecified */
{
inline
constexpr
/* unspecified */
cend
=
/* unspecified */
;
|
(seit C++20)
(Customization Point Object) |
|
|
Aufrufsignatur
|
||
|
template
<
class
T
>
requires
/* see below */
|
(seit C++20) | |
Gibt einen Sentinel für den konstanten Iterator (since C++23) zurück, der das Ende eines const-qualifizierten (until C++23) Bereichs anzeigt.
|
Sei
Ein Aufruf von
|
(bis C++23) |
|
Falls das Argument ein Lvalue ist oder
ranges::
enable_borrowed_range
<
std::
remove_cv_t
<
T
>>
true
ist, dann ist ein Aufruf von
In allen anderen Fällen ist ein Aufruf von
|
(seit C++23) |
Wenn
ranges
::
cend
(
e
)
für einen Ausdruck
e
gültig ist, wobei
decltype
(
(
e
)
)
als
T
bezeichnet wird, dann modelliert
CT
das Konzept
std::ranges::range
, und
(bis C++23)
std::
sentinel_for
<
S, I
>
ist in allen Fällen
true
, wobei
S
für
decltype
(
ranges
::
cend
(
e
)
)
steht und
I
für
decltype
(
ranges::
cbegin
(
e
)
)
.
Zusätzlich modelliert
S
das Konzept
constant-iterator
, falls es das Konzept
input_iterator
modelliert.
(seit C++23)
Customization Point Objects
Der Name
ranges::cend
bezeichnet ein
Customization Point Object
, welches ein konstantes
Function Object
eines
Literal
semiregular
-Klassentyps ist. Weitere Details finden Sie unter
CustomizationPointObject
.
Beispiel
#include <algorithm> #include <cassert> #include <ranges> #include <vector> int main() { std::vector vec{3, 1, 4}; int arr[]{5, 10, 15}; assert(std::ranges::find(vec, 5) == std::ranges::cend(vec)); assert(std::ranges::find(arr, 5) != std::ranges::cend(arr)); }
Siehe auch
|
(C++20)
|
gibt einen Sentinel zurück, der das Ende eines Bereichs anzeigt
(Anpassungspunktobjekt) |
|
(C++11)
(C++14)
|
gibt einen Iterator zum Ende eines Containers oder Arrays zurück
(Funktionstemplate) |