Skip to content

Latest commit

 

History

History
60 lines (48 loc) · 1.49 KB

size.md

File metadata and controls

60 lines (48 loc) · 1.49 KB

size

  • ranges[meta header]
  • std::ranges[meta namespace]
  • subrange[meta class]
  • function[meta id-type]
  • cpp20[meta cpp]
constexpr make-unsigned-like-t<iter_difference_t<I>> size() const
  requires (K == subrange_kind::sized);
  • make-unsigned-like-t[italic][link /reference/type_traits/make_unsigned.md]
  • iter_difference_t[link /reference/iterator/iter_difference_t.md]
  • subrange_kind[link /reference/ranges/subrange_kind.md]

概要

subrangeの大きさを取得する。

この関数は、subrangesizedのときのみオーバーロード解決に参加する。

効果

#include <ranges>
#include <iostream>

int main()
{
  constexpr int a[] = {1, 2, 3};
  const std::ranges::subrange sub1(a);
  const std::ranges::subrange sub2(a, a);

  std::cout << sub1.size() << '\n';
  std::cout << sub2.size() << '\n';
}

出力

3
0

バージョン

言語

  • C++20

処理系

  • Clang: 13.0.0 [mark verified]
  • GCC: 10.1.0 [mark verified]
  • ICC: ?
  • Visual C++: 2019 Update 10 [mark verified]

参照