名前空間
変種
操作

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

From cppreference.com
 
 
Rangesライブラリ
Rangeアダプタ
 
 
constexpr auto size() requires ranges::forward_range<D> &&

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

                            ranges::iterator_t<D>>;
(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 を満たさないため、デフォルト実装を使用できません。

[編集] 欠陥報告

以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。

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

[編集] 関連項目

(C++17)(C++20)
コンテナまたは配列のサイズを返す
(関数テンプレート) [編集]
rangeのサイズと等しい整数を返す
(カスタマイゼーションポイントオブジェクト)[編集]
rangeのサイズと等しい符号付き整数を返す
(カスタマイゼーションポイントオブジェクト)[編集]
English 日本語 中文(简体) 中文(繁體)