GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::locale(3) C++ Standard Libary std::locale(3)

std::locale - std::locale


Defined in header <locale>
class locale;


An object of class std::locale is an immutable indexed set of immutable facets. Each
stream object of the C++ input/output library is associated with an std::locale
object and uses its facets for parsing and formatting of all data. In addition, a
locale object is associated with each std::basic_regex object. Locale objects can
also be used as predicates that perform string collation with the standard
containers and algorithms and can be accessed directly to obtain or modify the
facets they hold.


Each locale constructed in a C++ program holds at least the following standard
facets, but a program may define additional specializations or completely new facets
and add them to any existing locale object.


Supported facets
std::collate<char> std::collate<wchar_t>
std::ctype<char> std::ctype<wchar_t>
std::codecvt<char,char,mbstate_t> std::codecvt<char32_t,char,mbstate_t>
std::codecvt<char16_t,char,mbstate_t> std::codecvt<wchar_t,char,mbstate_t>
std::moneypunct<char> std::moneypunct<wchar_t>
std::moneypunct<char,true> std::moneypunct<wchar_t,true>
std::money_get<char> std::money_get<wchar_t>
std::money_put<char> std::money_put<wchar_t>
std::numpunct<char> std::numpunct<wchar_t>
std::num_get<char> std::num_get<wchar_t>
std::num_put<char> std::num_put<wchar_t>
std::time_get<char> std::time_get<wchar_t>
std::time_put<char> std::time_put<wchar_t>
std::messages<char> std::messages<wchar_t>


Internally, a locale object is implemented as-if it is a reference-counted pointer
to an array (indexed by std::locale::id) of reference-counted pointers to facets:
copying a locale only copies one pointer and increments several reference counts. To
maintain the standard C++ library thread safety guarantees (operations on different
objects are always thread-safe), both the locale reference count and each facet
reference count are updated in thread-safe manner, similar to std::shared_ptr.


the facet index type: each facet class must declare or inherit a public
id static member of this type
(class)
the base class for all facet categories: each facet of any category is
facet derived from this type
(class)
category int
(typedef)


none a zero value of type category indicating no facet category
[static] (public static member constant)
collate a bitmask value of type category indicating the collate facet category
[static] (public static member constant)
ctype a bitmask value of type category indicating the ctype facet category
[static] (public static member constant)
monetary a bitmask value of type category indicating the monetary facet category
[static] (public static member constant)
numeric a bitmask value of type category indicating the numeric facet category
[static] (public static member constant)
time a bitmask value of type category indicating the time facet category
[static] (public static member constant)
messages a bitmask value of type category indicating the messages facet category
[static] (public static member constant)
all collate | ctype | monetary | numeric | time | messages
[static] (public static member constant)


constructor constructs a new locale
(public member function)
destructs the locale and the facets whose reference count becomes
destructor zero
(public member function)
operator= replaces a locale
(public member function)
constructs a locale with compile-time identified facet copied
combine from another locale
(public member function)
name returns the name of the locale or "*" if unnamed
(public member function)
operator== equality comparison between locale objects
operator!= (public member function)
(removed in C++20)
lexicographically compares two strings using this locale's
operator() collate facet
(public member function)
global changes the global locale
[static] (public static member function)
classic obtains a reference to the "C" locale
[static] (public static member function)


Demonstrates the typical prologue of a locale-sensitive program (cross-platform)

// Run this code


#include <iostream>
#include <locale>


int main()
{
std::wcout << "User-preferred locale setting is " << std::locale("").name().c_str() << '\n';
// on startup, the global locale is the "C" locale
std::wcout << 1000.01 << '\n';
// replace the C++ global locale as well as the C locale with the user-preferred locale
std::locale::global(std::locale(""));
// use the new global locale for future wide character output
std::wcout.imbue(std::locale());
// output the same number again
std::wcout << 1000.01 << '\n';
}


User-preferred locale setting is en_US.UTF8
1000.01
1,000.01


use_facet obtains a facet from a locale
(function template)
has_facet checks if a locale implements a specific facet
(function template)
imbue sets locale
(public member function of std::ios_base)
getloc returns current locale
(public member function of std::ios_base)

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.