• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

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

    履歴 編集

    class template
    <ranges>

    std::get

    namespace std::ranges {
      template<size_t N, class I, class S, subrange_kind K>
        requires (N < 2)
      constexpr auto get(const subrange<I, S, K>& r);
    
      template<size_t N, class I, class S, subrange_kind K>
        requires (N < 2)
      constexpr auto get(subrange<I, S, K>&& r);
    }
    
    namespace std {
      using ranges::get;
    }
    

    概要

    タプルと見なせる型から指定した位置の要素を取得する。

    <ranges>ヘッダでは、subrangeに関する特殊化を定義する。

    subrangeをタプルとして見たとき、大きさ2で、第0要素はイテレータ、第1要素は番兵である。

    効果

    if constexpr (N == 0)
      return r.begin();
    else
      return r.end();
    

    例外

    投げない

    #include <ranges>
    
    int main()
    {
      constexpr std::ranges::subrange sub = std::views::empty<int>;
      static_assert(std::get<0>(sub) == sub.begin());
      static_assert(std::get<1>(sub) == sub.end());
    }
    

    出力

    バージョン

    言語

    • C++20

    処理系

    参照