Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::ranges::common_range

      From cppreference.com
      <cpp‎ |ranges
       
       
      Ranges library
      Range adaptors
       
      Defined in header<ranges>
      template<class T>

      concept common_range=

         ranges::range<T>&&std::same_as<ranges::iterator_t<T>,ranges::sentinel_t<T>>;
      (since C++20)

      Thecommon_range concept is a refinement ofrange for whichstd::ranges::begin() andstd::ranges::end() return the same type (e.g. all standard library containers).

      [edit]Example

      Run this code
      #include <ranges> struct A{char* begin();char* end();};static_assert( std::ranges::common_range<A>); struct B{char* begin();bool end();};// not a common_range: begin/end have different typesstatic_assert( not std::ranges::common_range<B>); struct C{char* begin();};// not a common_range, not even a range: has no end()static_assert( not std::ranges::common_range<C>); int main(){}

      [edit]See also

      converts aview into acommon_range
      (class template)(range adaptor object)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/ranges/common_range&oldid=172804"

      [8]ページ先頭

      ©2009-2025 Movatter.jp