Defined in header <locale> | ||
---|---|---|
template< class Facet > locale combine( const locale& other ) const; |
Constructs a locale object which is a copy of *this
except for the facet of type Facet
, which is copied from other
.
The program is ill-formed if Facet is not a facet or it is a volatile-qualified facet.
The new, nameless, locale.
std::runtime_error
if other
does not implement Facet
.
#include <iostream> #include <locale> int main() { const double number = 1000.25; std::cout << "\"C\" locale: " << number << '\n'; std::locale loc = std::locale() .combine<std::numpunct<char>>(std::locale("en_US.UTF8")); std::cout.imbue(loc); std::cout << "\"C\" locale with en_US numpunct: " << number << '\n'; }
Output:
"C" locale: 1000.25 "C" locale with en_US numpunct: 1,000.25
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|---|---|---|
LWG 14 | C++98 | locale::combine was non-const | made const |
LWG 436 | C++98 | it was unclear whether Facet can be cv-qualified | it can be const-qualified, but not volatile-qualified |
constructs a new locale (public member function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/locale/locale/combine