• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

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

    履歴 編集

    function
    <ranges>

    std::ranges::possibly-const-range

    namespace std::ranges {
      template<input_range R>
      constexpr auto& possibly-const-range(R& r) noexcept {
        if constexpr (constant_range<const R> && !constant_range<R>) {
          return const_cast<const R&>(r);
        } else {
          return r;
        }
      }
    }
    

    概要

    possibly-const-rangeは入力のinput_rangeオブジェクトrを、可能なら要素が定数化されたrangeへ変換するものである。

    主に、ranges::cbegin()など定数イテレータを取得したい場所で、イテレータ取得前の段階でrange型の簡単な変換のみで定数イテレータを取得できるかを試行するのに使用される。

    バージョン

    言語

    • C++23

    参照