• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

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

    履歴 編集

    type-alias
    <iterator>

    std::const_sentinel

    namespace std {
      template<semiregular S>
      using const_sentinel = /*see below*/;
    }
    

    概要

    任意の番兵型Sを、定数イテレータ型(const_iterator)に対応する番兵型へ変換する。

    効果

    #include <iterator>
    
    int main() {
      static_assert(std::same_as<std::const_sentinel<int*>, std::basic_const_iterator<int*>>);
      static_assert(std::same_as<std::const_sentinel<const int*>, const int*>);
    
      using vec_iter = std::vector<int>::iterator;
    
      static_assert(std::same_as<std::const_sentinel<vec_iter>, std::basic_const_iterator<vec_iter>>);
      static_assert(std::same_as<std::const_sentinel<std::const_iterator<vec_iter>>, std::const_iterator<vec_iter>>);
    
      static_assert(std::same_as<std::const_sentinel<std::default_sentinel_t>, std::default_sentinel_t>);
      static_assert(std::same_as<std::const_sentinel<std::unreachable_sentinel_t>, std::unreachable_sentinel_t>);
    }
    

    出力

    バージョン

    言語

    • C++23

    処理系

    参照