locale() noexcept;
Effects: Constructs a copy of the argument last passed to locale::global(locale&), if it has been called; else, the resulting facets have virtual function semantics identical to those of locale::classic(). [ Note: This constructor is commonly used as the default value for arguments of functions that take a const locale& argument. — end note ]
locale(const locale& other) noexcept;
explicit locale(const char* std_name);
Effects: Constructs a locale using standard C locale names, e.g., "POSIX". The resulting locale implements semantics defined to be associated with that name.
explicit locale(const string& std_name);
locale(const locale& other, const char* std_name, category);
Effects: Constructs a locale as a copy of other except for the facets identified by the category argument, which instead implement the same semantics as locale(std_name).
locale(const locale& other, const string& std_name, category cat);
template <class Facet> locale(const locale& other, Facet* f);
Effects: Constructs a locale incorporating all facets from the first argument except that of type Facet, and installs the second argument as the remaining facet. If f is null, the resulting object is a copy of other.
locale(const locale& other, const locale& one, category cats);
Effects: Constructs a locale incorporating all facets from the first argument except those that implement cats, which are instead incorporated from the second argument.
const locale& operator=(const locale& other) noexcept;
~locale();