std::basic_ios::imbue

From cppreference.com
< cpplrm; | iolrm; | basic ios
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

(none)

Example

#include <iostream>
#include <sstream>
#include <locale>

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