# Function Template `imbue`

Description
Headers
Reference

## Description

The function template `imbue` is invoked automatically by the Iostreams library when the `std::locale` of a library stream or stream buffer is set using `std::basic_ios::imbue` or `std::basic_streambuf::pubimbue`. When the `std::locale` of an instance of `stream_buffer` or `stream` is set, `imbue` is invoked on the underlying Device; when the `std::locale` of a `filtering_streambuf` or `filtering_stream` is set, `imbue` is invoked on each Filter and Device in the underlying chain.

## Headers

`<boost/iostreams/detail/imbue.hpp>`
`<boost/iostreams/detail/operations.hpp>`

## Reference

#### Synopsis

    namespace boost { namespace iostreams {

    template<typename T>
    void imbue(T& t, const std::locale& loc);

    } } // End namespace boost::io

#### Template Parameters

T | - | A model of one of the Filter or Device concepts

#### Semantics

The semantics of `imbue` for a Filter or Device type `T` depends on its category as follows:

`category_of<T>::type` | semantics
--- | ---
Convertible to `streambuf_tag` | calls `t.pubimbue(loc)`
Convertible to `localizable_tag` but not to `streambuf_tag` | calls `t.imbue(loc)`
otherwise | no-op

Revised 20 May, 2004

© Copyright Jonathan Turkanis, 2004

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)