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 typedef
s 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::category
typedef see below category;
A category tag convertible to Mode
, device_tag
, closable_tag
and localizable_tag
.
device::close
void 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::imbue
void imbue(const std::locale&);
Implemented as a no-op. Required by Localizable.
Revised 02 Feb 2008
© Copyright 2008 CodeRage, LLC
© Copyright 2004-2007 Jonathan Turkanis
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)