device
The class template device, its subcass wdevice and their specializations source, sink, wsource and wsink are provided by the Iostreams library to ease the definitions of new models of the various Device Concepts. These templates and typedefs are inteded to be used as base classes for user-defined Devices. They supply the member types char_type and category used by the Iostreams library.
The supplied category member is convertible to closable_tag and to localizable_tag. This allows users to define models of the concepts Closable and Localizable simply by providing definitions of member functions close and imbue.
<boost/iostreams/concepts.hpp>namespace boost{ namespace iostreams { template<typename Mode, typename Ch = char> struct device; template<typename Mode, typename Ch = wchar_t> struct wdevice : device<Mode, Ch> { }; typedef device<input> source; typedef device<output> sink; typedef wdevice<input> wsource; typedef wdevice<output> wsink; template<typename Mode, typename Ch = char> struct device { typedef Ch char_type; typedef see below category; void close(); void close(std::ios_base::openmode); void imbue(const std::locale&); }; } } // End namespace boost::io
| Mode | - | A mode tag. |
| Ch | - | The character type |
device::categorytypedef see below category;
A category tag convertible to Mode, device_tag, closable_tag and localizable_tag.
device::closevoid close(); void close(std::ios_base::openmode);
Both overloads are implemented as no-ops. The second is available only if Mode is convertible to bidirectional. The first is available only if Mode is not convertible to bidirectional.
Required by Closable.
device::imbuevoid imbue(const std::locale&);
Implemented as a no-op. Required by Localizable.
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)