std::ranges::cend
| ヘッダ <ranges>
|
||
| で定義 <iterator>
|
||
inline namespace /* unspecified */ {
inline constexpr /* unspecified */ cend = /* unspecified */;
}
|
(C++20 以降) (カスタマイゼーションポイントオブジェクト) |
|
| 呼び出しシグネチャ |
||
template< class T >
requires /* see below */
constexpr /* see below */ auto cend( T&& t );
|
(C++20 以降) | |
定数イテレータ(C++23 以降) 用のconst修飾された(C++23 まで) range の終端を示すセンチネルを返します。
|
とします。 |
(C++23 まで) |
|
引数が左辺値であるか、または
その他のすべての場合、 |
(C++23 以降) |
ranges::cend(e) がある式 e に対して有効であり、ここで decltype((e)) は T である場合、CT は std::ranges::range をモデル化し、かつ(C++23 まで) std::sentinel_for<S, I> はすべての場合において true であり、ここで S は decltype(ranges::cend(e))、I は decltype(ranges::cbegin(e)) です。さらに、S が constant-iterator をモデル化する場合、input_iterator をモデル化します。(C++23 以降)
カスタマイゼーションポイントオブジェクト
名前
ranges::cend
は
カスタマイゼーションポイントオブジェクト
を表し、これは
関数オブジェクト
のconst版で、
リテラル型
semiregular
クラス型である。詳細は
CustomizationPointObject
を参照。
例
#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)); }
関連項目
|
(C++20)
|
範囲の終端を示すセンチネルを返す
(カスタマイゼーションポイントオブジェクト) |
|
(C++11)
(C++14)
|
コンテナまたは配列の終端を指すイテレータを返す
(関数テンプレート) |