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

FreeBSD Manual Pages

  
 
  

home | help
std::locale::locale(3)	      C++ Standard Libary	std::locale::locale(3)

NAME
       std::locale::locale - std::locale::locale

Synopsis
	  Defined in header <locale>
	  locale()    throw();						(until
       C++11)
	  locale()   noexcept;						(since
       C++11)
	  locale(	const	    locale&	  other	      )	      throw();
       (until C++11)
	  locale(      const	   locale&	 other	     )	     noexcept;
       (since C++11)
	  explicit locale( const char* std_name	);		   (3)
	  explicit   locale(   const  std::string&  std_name  );	   (4)
       (since C++11)
	  locale( const	locale&	other, const char*	   (1)	   (5)
	  std_name, category cat );			       (2)
	  locale(  const  locale&  other,  const   std::string&		   (6)
       (since C++11)
	  std_name, category cat );
	  template< class Facet	>				   (7)
	  locale( const	locale&	other, Facet* f	);
	  locale( const	locale&	other, const locale& one,	   (8)
	  category cat );

	  Contstructs a	new locale object.

	  1)  Default constructor. Constructs a	copy of	the global C++ locale,
       which is	the
	  locale most recently used as the argument to std::locale::global  or
       a copy of
	  std::locale::classic	if  no	call  to  std::locale::global has been
       made.
	  2) Copy constructor. Constructs a copy of other.
	  3-4) Constructs a copy of the	system locale with specified  std_name
       (such as	"C", or
	  "POSIX",  or "en_US.UTF-8", or "English_US.1251"), if	such locale is
       supported by the
	  operating system. The	locale constructed in this manner has a	name.
	  5-6) Constructs a copy of other except for all the facets identified
       by the cat
	  argument, which are copied from the system locale identified by  its
       std_name. The
	  locale  constructed  in  this	manner has a name if and only if other
       has a name.
	  7) Constructs	a copy of other	except for the	facet  of  type	 Facet
       (typically deduced
	  from	the type of the	argument) which	is installed from the argument
       facet. If facet
	  is a null pointer, the constructed locale is a full copy  of	other.
       The locale
	  constructed in this manner has no name.
	  8)  Constructs  a copy of other except for all the facets identified
       by the cat
	  argument, which are copied from one. If  both	 other	and  one  have
       names, then the
	  resulting locale also	has a name.

Parameters
	  other	   - another locale to copy
	  std_name - name of the system	locale to use
	  f	   - pointer to	a facet	to merge with other
	  cat	    - the locale category used to identify the facets to merge
       with other
	  one	   - another locale to take facets from

Exceptions
	  3,5) std::runtime_error if the operating system has no locale	 named
       std_name	or if
	  std_name is a	null pointer.
	  4,6)	std::runtime_error if the operating system has no locale named
       std_name.
	  7,8) May throw implementation-defined	exceptions.

Notes
	  Overload 7 is	typically called with its second argument, f, obtained
       directly	from a
	  new-expression: the locale is	responsible for	calling	 the  matching
       delete from its
	  own destructor.

Example
       // Run this code

	#include <codecvt>
	#include <iostream>
	#include <locale>

	std::ostream& operator<< (std::ostream&	os, std::locale	const& loc)
	{
	    if	(loc.name().length() <=	80) { return os	<< loc.name() << '\n';
       }

	    for	(const auto c :	loc.name())
	    {
		c != ';' ? os << c : os	<< "\n	  ";
	    }
	    return os << '\n';
	}

	int main()
	{
	    std::locale	l1;
		// l1 is a copy	of the classic "C" locale
	    std::locale	l2("en_US.UTF-8");
		// l2 is a unicode locale
	    std::locale	l3(l1, l2, std::locale::ctype);
		// l3 is "C" except for	ctype, which is	unicode
	    std::locale	l4(l1, new std::codecvt_utf8<wchar_t>);
		// l4 is "C" except for	codecvt
	    std::cout
		<< "Locale names:\n"
		<< "l1:	" << l1	<< "l2:	" << l2
		<< "l3:	" << l3	<< "l4:	" << l4;
	}

Possible output:
	Locale names:
	l1: C
	l2: en_US.UTF-8
	l3: LC_CTYPE=en_US.UTF-8
	    LC_NUMERIC=C
	    LC_TIME=C
	    LC_COLLATE=C
	    LC_MONETARY=C
	    LC_MESSAGES=C
	    LC_PAPER=C
	    LC_NAME=C
	    LC_ADDRESS=C
	    LC_TELEPHONE=C
	    LC_MEASUREMENT=C
	    LC_IDENTIFICATION=C
	l4: *

See also
	  destructor   destructs the locale and	 the  facets  whose  reference
       count becomes zero
		       (public member function)

http://cppreference.com		  2022.07.31		std::locale::locale(3)

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

home | help