GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • cpprefjp - C++日本語リファレンス
  • GitHub Project

This view

  • Original page
  • New address

GeezerVison is showing cpprefjp.github.io — std::ranges::view_interface - cpprefjp C++日本語リファレンス

  1. リファレンス
  2. ranges
  3. view_interface

最終更新日時: 2026年09月11日 13時06分31秒 (JST)
Akira Takahashi が更新

履歴 編集

class template
<ranges>

std::ranges::view_interface(C++20)

namespace std::ranges {
  template<class D>
    requires is_class_v<D> && same_as<D, remove_cv_t<D>>
  class view_interface { …… };
}

概要

view_interfaceは、viewを実装する際に便利なクラステンプレートである。

使用するときは、Dでview_interfaceを公開継承した上で派生クラスDをview_interfaceのテンプレート引数にする(CRTP)。

テンプレートパラメータ制約

Dはview_interface<D>の派生クラスであること。

メンバ関数

これらのメンバ関数は、std::ranges以下のカスタマイゼーションポイントオブジェクトを使って実装されており、テンプレート引数Dとして渡されたRange型に対して該当する呼び出しが可能な場合のみオーバーロード解決に参加する。

名前 説明 対応バージョン
empty Rangeが空かどうかを判定する C++20
operator bool Rangeが空でないかどうかを判定する C++20
data Rangeの先頭へのポインタを取得する C++20
size 要素数を取得する C++20
front 先頭要素への参照を取得する C++20
back 末尾要素への参照を取得する C++20
operator[] 要素へアクセスする C++20
at 範囲チェックをともなって要素へアクセスする C++29
cbegin 定数イテレータを取得する C++23
cend 定数イテレータ(番兵)を取得する C++23
derived Dへダウンキャストする (説明専用) C++20

バージョン

言語

  • C++20

処理系

  • Clang: 13.0.0 ✅
  • GCC: 10.1.0 ✅
  • Visual C++: 2019 Update 10 ✅

関連項目

  • enable_view

参照

  • N4861 24 Ranges library
  • C++20 ranges
  • LWG Issue 3549. view_interface is overspecified to derive from view_base
  • P2278R4 cbegin should always return a constant iterator
  • P3052R2 view_interface::at()
    • C++29で、範囲チェックをともなって要素へアクセスするat()メンバ関数が追加された
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.