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(): []