Namespaces
Variants

std::ranges::view_interface<D>:: size

From cppreference.net
Ranges library
Range adaptors
(1) (C++20以降)
constexpr auto size ( ) const requires ranges:: forward_range < const D > &&

std:: sized_sentinel_for < ranges:: sentinel_t < const D > ,

ranges:: iterator_t < const D >> ;
(2) (C++20以降)

size() メンバ関数のデフォルト実装は、センチネルと先頭イテレータの差を計算することで範囲のサイズを取得します。

目次

戻り値

1) to-unsigned-like  ( ranges:: end ( static_cast < D & > ( this ) ) -
ranges:: begin ( static_cast < D & > ( this ) ) )
.
2) to-unsigned-like  ( ranges:: end ( static_cast < const D & > ( this ) ) -
ranges:: begin ( static_cast < const D & > ( this ) ) )
.

注記

以下の派生型は size() のデフォルト実装を使用する可能性があります:

以下の型は std::ranges::view_interface から派生していますが、独自の size() メンバ関数を宣言しておらず、デフォルトの実装を使用できません。なぜなら、それらのイテレータ型と番兵型が sized_sentinel_for を満たすことがないためです:

(注:指示に従い、HTMLタグ・属性、
タグ内のテキスト、C++固有の用語は翻訳せず、元のフォーマットを保持しています。翻訳対象の自然言語テキストが存在しないため、出力は入力と同一となります)

不具合報告

以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。

DR 適用対象 公開時の動作 正しい動作
LWG 3646 C++20 size 関数のデフォルト実装が符号付き型を返していた 符号なし型を返す

関連項目

(C++17) (C++20)
コンテナまたは配列のサイズを返す
(関数テンプレート)
範囲のサイズと等しい整数を返す
(カスタマイゼーションポイントオブジェクト)
範囲のサイズと等しい符号付き整数を返す
(カスタマイゼーションポイントオブジェクト)