std::ranges::cbegin
| ヘッダで定義 <ranges>
|
||
| ヘッダで定義 <iterator>
|
||
inline namespace /* unspecified */ {
inline constexpr /* unspecified */ cbegin = /* unspecified */;
}
|
(C++20 以降) (カスタマイゼーションポイントオブジェクト) |
|
| 呼び出しシグネチャ |
||
template< class T >
requires /* see below */
constexpr /* see below */ auto cbegin( T&& t );
|
(C++20 以降) | |
|
const修飾された引数の最初の要素へのイテレータを返します。 |
(C++23 まで) |
|
引数の最初の要素への定数イテレータを返します。 |
(C++23 以降) |
|
|
(C++23 まで) |
|
引数が左辺値であるか、
それ以外のすべての場合、 |
(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)
|
コンテナまたは配列の先頭を指すイテレータを返す
(関数テンプレート) |