Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
deductiongu...string_view(3)  C++ Standard Libary deductiongu...string_view(3)

NAME
       deductionguidesforstd::basic_string_view	 -  deductionguidesforstd::ba-
       sic_string_view

Synopsis
	  Defined in header <string_view>
	  template<class It, class End>
	  basic_string_view(It,			   End)			    ->
       (1) (since C++20)
	  basic_string_view<std::iter_value_t<It>>;
	  template<class R>
	  basic_string_view(R&&)					    ->
       (2) (since C++23)
	  basic_string_view<ranges::range_value_t<R>>;

	  These	deduction guides are provided for std::basic_string_view.

	  1) This deduction guide allow	the character type to be deduced  from
       the
	  iterator-sentinel pair. This overload	participates in	overload reso-
       lution only if It
	  satisfies  contiguous_iterator  and End satisfies sized_sentinel_for
       for It.
	  2) This deduction guide allow	the character type to be deduced  from
       the range. This
	  overload  participates  in  overload	resolution only	if R satisfies
       contiguous_range.

Example
       // Run this code

	#include <array>
	#include <iostream>
	#include <string_view>

	int main()
	{
	    std::array a1 {'n',	'u', 'c', 'l', 'e', 'o', 'n', 's', ':',	'\n'};
	    std::basic_string_view s1(a1.cbegin(), a1.cend());	//  deduction:
       CharT ->	char
	    static_assert(std::is_same_v<decltype(s1)::value_type, char>);
	    std::cout << s1;

	    std::array a2 {L'p', L'r', L'o', L't', L'o', L'n', L's', L'\n'};
	    std::basic_string_view  s2(a2.cbegin(),  a2.cend()); // deduction:
       CharT ->	wchar_t
	    static_assert(std::is_same_v<decltype(s2)::value_type, wchar_t>);
	    std::wcout << s2;

	    std::array<long, 9>	a3 {'n', 'e', 'u', 't',	'r',  'o',  'n',  's',
       '\n'};
	    std::basic_string_view  s3(a3.cbegin(),  a3.cend()); // deduction:
       CharT ->	long
	    static_assert(std::is_same_v<decltype(s3)::value_type, long>);
	    for	(const auto e :	s3) { std::cout	<< static_cast<char>(e); }
	}

Output:
	nucleons:
	protons
	neutrons

http://cppreference.com		  2022.07.31	  deductiongu...string_view(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=deductionguidesforstd::basic_string_view&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help