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

FreeBSD Manual Pages

  
 
  

home | help
std::wstrin...ring_convert(3) C++ Standard Libarystd::wstrin...ring_convert(3)

NAME
       std::wstring_convert::wstring_convert	    -	     std::wstring_con-
       vert::wstring_convert

Synopsis
	  wstring_convert() : wstring_convert( new Codecvt ) { } (1)
	  explicit wstring_convert( Codecvt* pcvt );		 (2)
	  wstring_convert( Codecvt* pcvt, state_type state);	 (3)
	  explicit wstring_convert( const byte_string& byte_err, (4)
	  const	wide_string& wide_err =	wide_string() );
	  wstring_convert(const	std::wstring_convert&) =  delete;  (5)	(since
       C++14)

	  1) Default constructor.
	  2) Constructs	the wstring_convert object with	a specified conversion
       facet, using
	  default-constructed values for the shift state and the error strings
	  3) Constructs	the wstring_convert object with	a specified conversion
       facet and
	  specified  shift state, using	default-constructed values for the er-
       ror strings
	  4)  Constructs  the  wstring_convert	object	with  specified	 error
       strings,	using new
	  Codecvt   as	 the  conversion  facet	 and  the  default-constructed
       state_type as shift
	  state.
	  5) The copy constructor is deleted, wstring_convert is not  CopyCon-
       structible

Parameters
	  pcvt	   - pointer to	the conversion facet of	type Codecvt (behavior
       is undefined if
		     this pointer is null)
	  state	   - initial value of the conversion shift state
	  byte_err - narrow string to display on errors
	  wide_err - wide string to display on errors

	 Defect	reports

	  The following	behavior-changing defect reports were applied retroac-
       tively to
	  previously published C++ standards.

	    DR	  Applied to	  Behavior as published	      Correct behavior
	  P0935R0 C++11	     default constructor was explicit made implicit

Example
       // Run this code

	#include <locale>
	#include <utility>
	#include <codecvt>

	//  utility  wrapper  to adapt locale-bound facets for wstring/wbuffer
       convert
	template<class Facet>
	struct deletable_facet : Facet
	{
	    using Facet::Facet;	// inherit constructors
	    ~deletable_facet() {}
	};

	int main()
	{
	    // UTF-16le	/ UCS4 conversion
	    std::wstring_convert<
		 std::codecvt_utf16<char32_t, 0x10ffff,	std::little_endian>
	    > u16to32;

	    // UTF-8 / wide string conversion with custom messages
	    std::wstring_convert<std::codecvt_utf8<wchar_t>>	 u8towide("Er-
       ror!", L"Error!");

	    // GB18030 / wide string conversion	facet
	    typedef	deletable_facet<std::codecvt_byname<wchar_t,	 char,
       std::mbstate_t>>	F;
	    std::wstring_convert<F> gbtowide(new F("zh_CN.gb18030"));
	}

http://cppreference.com		  2022.07.31	 std::wstrin...ring_convert(3)

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

home | help