最終更新日時(UTC):
が更新

履歴 編集

concept
<ranges>

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

namespace std::ranges {
  template<class T>
  concept viewable_range =
    range<T> &&
    ((view<remove_cvref_t<T>> && constructible_from<remove_cvref_t<T>, T>) ||
     (!view<remove_cvref_t<T>> &&
      (is_lvalue_reference_v<T> || (movable<remove_reference_t<T>> && !is-initializer-list<T>))));
}

概要

viewable_rangeは、安全にviewへ変換できるRangeを表すコンセプトである。

Rangeアダプタを適用するには、viewable_rangeである必要がある。

モデル

Tviewable_rangeのモデルとなるのは、Trangeのモデルであり、かつTborrowed_rangeのモデルであるか、remove_cvref_t<T>viewのモデルである場合である。

borrowed_rangeまたはviewではないrangeの右辺値は、viewable_rangeのモデルにはならない。

(執筆中)

出力

(執筆中)

バージョン

言語

  • C++20

処理系

参照