std::ranges::view_interface<D>:: size
|
constexpr
auto
size
(
)
requires
ranges::
forward_range
<
D
>
&&
std::
sized_sentinel_for
<
ranges::
sentinel_t
<
D
>
,
|
(1) | (C++20以降) |
|
constexpr
auto
size
(
)
const
requires
ranges::
forward_range
<
const
D
>
&&
std::
sized_sentinel_for
<
ranges::
sentinel_t
<
const
D
>
,
|
(2) | (C++20以降) |
size()
メンバ関数のデフォルト実装は、センチネルと先頭イテレータの差を計算することで範囲のサイズを取得します。
目次 |
戻り値
to-unsigned-like
(
ranges::
end
(
static_cast
<
D
&
>
(
this
)
)
-
ranges::
begin
(
static_cast
<
D
&
>
(
this
)
)
)
.
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
を満たすことがないためです:
- std::ranges::basic_istream_view
- std::ranges::filter_view
- std::ranges::join_view
- std::ranges::lazy_split_view
- std::ranges::split_view
- std::ranges::take_while_view
・
・
不具合報告
以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| LWG 3646 | C++20 |
size
関数のデフォルト実装が符号付き型を返していた
|
符号なし型を返す |
関連項目
|
(C++17)
(C++20)
|
コンテナまたは配列のサイズを返す
(関数テンプレート) |
|
(C++20)
|
範囲のサイズと等しい整数を返す
(カスタマイゼーションポイントオブジェクト) |
|
(C++20)
|
範囲のサイズと等しい符号付き整数を返す
(カスタマイゼーションポイントオブジェクト) |