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  resolu-
     tion 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 con-
     tiguous_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)

home | help