A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://en.cppreference.com/w/cpp/language/../error/error_code/../../ranges/ref_view.html below:

std::ranges::ref_view - cppreference.com

ref_view is a view of the elements of some other range. It wraps a reference to that range.

[edit] Data members Member Description R* r_ a pointer to the underlying range
(exposition-only member object*) [edit] Member functions constructs a ref_view that references to the given range
(public member function) returns the references to the referenced range
(public member function) returns the beginning iterator of the referenced range
(public member function) returns the sentinel of the referenced range
(public member function) checks whether the referenced range is empty
(public member function) returns the size of the referenced sized_range
(public member function) returns the approximate size of the referenced approximately_sized_range
(public member function) returns the pointer to the beginning of the referenced contiguous_range
(public member function) Inherited from std::ranges::view_interface returns a constant iterator to the beginning of the range
(public member function of std::ranges::view_interface<D>) [edit] returns a sentinel for the constant iterator of the range
(public member function of std::ranges::view_interface<D>) [edit] returns whether the derived view is not empty, provided only if ranges::empty is applicable to it
(public member function of std::ranges::view_interface<D>) [edit] returns the first element in the derived view, provided if it satisfies forward_range
(public member function of std::ranges::view_interface<D>) [edit] returns the last element in the derived view, provided only if it satisfies bidirectional_range and common_range
(public member function of std::ranges::view_interface<D>) [edit] returns the nth element in the derived view, provided only if it satisfies random_access_range
(public member function of std::ranges::view_interface<D>) [edit] std::ranges::ref_view::ref_view (since C++20)

Initializes r_ with std::addressof(static_cast<R&>(std::forward<T>(t))).

/*different-from*/<T, U> is satisfied if and only if std::remove_cvref_t<T> and std::remove_cvref_t<U> are not the same type, and overloads of _FUN are declared as void _FUN(R&); void _FUN(R&&) = delete;.

Parameters std::ranges::ref_view::base

constexpr R& base() const;

(since C++20)

Returns *r_.

std::ranges::ref_view::empty constexpr bool empty() const
    requires requires { ranges::empty(*r_); };
(since C++20)

Returns ranges::empty(*r_ ).

std::ranges::ref_view::reserve_hint

constexpr auto size() const
    requires ranges::approximately_sized_range<R>;

(since C++26)

Returns ranges::reserve_hint(*r_ ).

[edit] Deduction guides

template< class R >
ref_view( R& ) -> ref_view<R>;

(since C++20) [edit] Helper templates

template< class T >
constexpr bool enable_borrowed_range<ranges::ref_view<T>> = true;

(since C++20)

This specialization of std::ranges::enable_borrowed_range makes ref_view satisfy borrowed_range.

[edit] Notes [edit] Example
#include <iostream>
#include <ranges>
 
int main()
{
    const std::string s{"cosmos"};
 
    const std::ranges::take_view tv{s, 3};
    const std::ranges::ref_view rv{tv};
 
    std::cout
        << std::boolalpha
        << "call empty(): " << rv.empty() << '\n'
        << "call size() : " << rv.size() << '\n'
        << "call begin(): " << *rv.begin() << '\n'
        << "call end()  : " << *(rv.end() - 1) << '\n'
        << "call data() : " << rv.data() << '\n'
        << "call base() : " << rv.base().size() << '\n' // ~> tv.size()
        << "range-for   : ";
 
    for (const auto c : rv)
        std::cout << c;
    std::cout << '\n';
}

Output:

call empty(): false
call size() : 3
call begin(): c
call end()  : s
call data() : cosmos
call base() : 3
range-for   : cos
[edit] Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior P2325R3 C++20 default constructor was provided as
view must be default_initializable removed along with the requirement [edit] See also

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4