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		  2024.06.10	  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.1.quarterly>

home | help