最終更新日時: 2026年06月01日 18時02分12秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<ranges>

# std::ranges::concat_view::size(C++26)

    constexpr auto size()
      requires (sized_range<Views> && ...);        // (1) C++26

    constexpr auto size() const
      requires (sized_range<const Views> && ...);  // (2) C++26

## 概要

連結されたすべてのRangeの要素数の合計を取得する。

## 制約

- (1) : `Views...`のすべてが`sized_range`であること
- (2) : `const Views...`のすべてが`sized_range`であること

## 戻り値

- (1), (2) : 連結されたすべてのRangeの要素数の合計を返す

## 計算量

- O(1)

## 例

    #include <print>
    #include <ranges>
    #include <array>
    #include <vector>
    #include <iterator>

    int main() {
      std::vector<int> v1{1, 2, 3};
      std::vector<int> v2{4, 5};
      std::array<int, 3> a{6, 7, 8};

      std::ranges::concat_view r{v1, v2, a};

      std::println("size: {}", r.size());

      // 実際の要素数を確認
      auto count = std::ranges::distance(r);
      std::println("distance: {}", count);
    }

### 出力

    size: 8
    distance: 8

## バージョン

### 言語

- C++26

### 処理系

- Clang: 23 ✅
- GCC: 15 ✅
- Visual C++: 2022 Update 14 ❌