# Class Template `mode_of`

Description
Headers
Reference

## Description

Metafunction returning a mode tag corresponding the the mode of a model of one of the Filter or Device concepts.

## Headers

`<boost/iostreams/traits.hpp>`

## Reference

#### Synopsis

    namespace boost { namespace iostreams {

    template<typename T>
    struct mode_of {
        typedef see below type;
    };

    } } // End namespace boost::io

#### Template parameters

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

#### `mode_of::type`

        typedef implementation-defined type;

The most-derived mode tag to which `category_of<T>::type` is convertible. If there is no such most-derived tag, a compile-time error occurs.

Modes assigned to standard library types are displayed in the following table.

`T` | `category`
--- | ---
Specialization of `std::basic_iostream`, or derived from such a specialization | `seekable`
Specialization of `std::basic_istream`, or derived from such a specialization | `input_seekable`
Specialization of `std::basic_ostream`, or derived from such a specialization | `output_seekable`
Specialization of `std::basic_streambuf`, or derived from such a specialization | `seekable`
Specialization of `std::back_insert_iterator`, or derived from such a specialization | `output`

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)