std::ranges::common_view<V>::base - cppreference.com

From cppreference.com

constexprVbase()const&requiresstd::copy_constructible<V>; (1) (since C++20)constexprVbase()&&; (2) (since C++20)Returns a copy of the underlying view.

1) Copy constructs the result from the underlying view.

2) Move constructs the result from the underlying view.

Parameters

(none)

Return value

A copy of the underlying view.

Example

Run this code

#include<iostream>#include<ranges>#include<string>intmain(){std::stringstr{"C++20"};autoview=std::views::common(str);std::stringcopy_of_str=view.base();std::cout<<"copy of str: ["<<copy_of_str<<"]\n";std::cout<<"view.base(): ["<<view.base()<<"]\n";std::stringmove_str=std::move(view.base());std::cout<<"moved str: ["<<move_str<<"]\n";std::cout<<"view.base(): ["<<view.base()<<"]\n";// unspecified}Possible output:

copy of str: [C++20] view.base(): [C++20] moved str: [C++20] view.base(): []