Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::ranges::view_interface<D>::data

      From cppreference.com
      <cpp‎ |ranges‎ |view interface
       
       
      Ranges library
      Range adaptors
       
       
      constexprauto data()
          requiresstd::contiguous_iterator<ranges::iterator_t<D>>;
      (1)(since C++20)
      constexprauto data()const

          requiresranges::range<const D>&&

             std::contiguous_iterator<ranges::iterator_t<const D>>;
      (2)(since C++20)

      The default implementation ofdata() member function obtains the address denoted by the beginning iterator viastd::to_address, which is also the lowest address of the contiguous storage (implied bycontiguous_iterator) referenced by the view of the derived type when the view is not empty.

      1) Letderived bestatic_cast<D&>(*this). Equivalent toreturnstd::to_address(ranges::begin(derived));.
      2) Same as(1), except thatderived isstatic_cast<const D&>(*this).

      Contents

      [edit]Return value

      The address denoted by the beginning iterator.

      [edit]Notes

      Following derived types may use the default implementation ofdata():

      Following types are derived fromstd::ranges::view_interface and do not declare their owndata() member function, but they cannot use the default implementation, because their iterator types never satisfycontiguous_iterator:

      [edit]Example

      Run this code
      #include <array>#include <iostream>#include <ranges>#include <string_view> int main(){constexprstd::string_view str{"Hello, C++20!"};std::cout<<(str| std::views::drop(7)).data()<<'\n';constexprstaticstd::array a{1,2,3,4,5};constexprauto v{ a| std::views::take(3)};    static_assert(&a[0]== v.data());}

      Output:

      C++20!

      [edit]See also

      (C++17)
      obtains the pointer to the underlying array
      (function template)[edit]
      obtains a pointer to the beginning of a contiguous range
      (customization point object)[edit]
      obtains a pointer to the beginning of a read-only contiguous range
      (customization point object)[edit]
      (C++20)
      obtains a raw pointer from a pointer-like type
      (function template)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/ranges/view_interface/data&oldid=182208"

      [8]ページ先頭

      ©2009-2025 Movatter.jp