std::basic_ios<CharT,Traits>:: imbue

From cppreference.com
std:: locale imbue ( const std:: locale & loc ) ;

Replaces the current locale. Effectively calls ios_base :: imbue ( loc ) and if there is an associated stream buffer ( rdbuf ( ) ! = 0 ), then calls rdbuf ( ) - > pubimbue ( loc ) .

Parameters

loc - the new locale

Return value

The previous locale, as returned by ios_base :: imbue ( loc ) .

Exceptions

May throw implementation-defined exceptions.

Example

#include <iostream>
#include <locale>
#include <sstream>
 
int main()
{
    std::istringstream iss;
    iss.imbue(std::locale("en_US.UTF8"));
 
    std::cout << "Current locale: " << iss.getloc().name() << '\n';
 
    iss.imbue(std::locale());
    std::cout << "Global locale : " << iss.getloc().name() << '\n';
}

Output:

Current locale: en_US.UTF8
Global locale : C