std::ranges:: cbegin
|
ヘッダーで定義
<ranges>
|
||
|
ヘッダーで定義
<iterator>
|
||
|
inline
namespace
/* unspecified */
{
inline
constexpr
/* unspecified */
cbegin
=
/* unspecified */
;
|
(C++20以降)
(カスタマイゼーションポイントオブジェクト) |
|
|
呼び出しシグネチャ
|
||
|
template
<
class
T
>
requires
/* see below */
|
(C++20以降) | |
|
引数のconst修飾された最初の要素へのイテレータを返す。 |
(until C++23) |
|
引数の最初の要素への定数イテレータを返す。 |
(since C++23) |
|
|
(C++23以前) |
|
引数が左辺値であるか、または
ranges::
enable_borrowed_range
<
std::
remove_cv_t
<
T
>>
が
true
である場合、
それ以外の場合、
|
(C++23以降) |
戻り値の型はすべての場合において
std::input_or_output_iterator
および
constant-iterator
(C++23以降)
をモデル化します。
目次 |
カスタマイゼーションポイントオブジェクト
名前
ranges::cbegin
は
カスタマイゼーションポイントオブジェクト
を表し、これは
関数オブジェクト
のconst版で、
リテラル型
semiregular
クラス型です。詳細は
CustomizationPointObject
を参照してください。
注記
lvalue範囲 e が型 T を持つ場合、 ranges :: cbegin ( e ) は以下と等価です:
|
ranges:: begin ( std:: as_const ( e ) ) . |
(C++23まで) |
|
(C++23から) |
例
#include <cassert> #include <ranges> #include <vector> int main() { std::vector v{3, 1, 4}; auto vi = std::ranges::cbegin(v); assert(3 == *vi); ++vi; // OK: 定数イテレータオブジェクトは変更可能 assert(1 == *vi); // *vi = 13; // エラー: 定数イテレータは不変要素を指す int a[]{3, 1, 4}; auto ai = std::ranges::cbegin(a); // cbeginはC配列でも機能する assert(3 == *ai and *(ai + 1) == 1); // *ai = 13; // エラー: 読み取り専用変数は代入不可 }
関連項目
|
(C++20)
|
範囲の先頭を指すイテレータを返す
(カスタマイゼーションポイントオブジェクト) |
|
(C++11)
(C++14)
|
コンテナまたは配列の先頭を指すイテレータを返す
(関数テンプレート) |