seek
    The function template seek is used by the Iostreams library to perform random access withing a sequence controlled by a Device.
<boost/iostreams/operations.hpp><boost/iostreams/seek.hpp>T, returning the resulting stream position.
namespace boost { namespace iostreams { template<typename T> std::streampos seek( T&, stream_offset off, std::ios_base::seekdir way, std::ios_base::openmode which = std::ios_base::in | std::ios_base::out ); } } // End namespace boost::io
| T | - | A model of one of the Device concepts which allows random access. | 
| off | - | A stream_offset indicating the number of characters by which the appropriate reading or writing heads should be advanced. The initial position is determined by the parameter way.
     | 
| way | - | Determines the initial position to which the offset off is applied, as follows: 
  | 
| which | - | Determines whether the reading head, the writing head or both are repositioned. | 
The semantics of seek depends on the category of T as follows:
category_of<T>::type | semantics | 
|---|---|
convertible to istream_tag or ostream_tag | 
        returns:
        
  | 
convertible to streambuf_tag | 
        returns:
        
  | 
convertible to input_seekable but not to output_seekable | 
        returns t.seek(off, way) | 
    
convertible to output_seekable but not to input_seekable | 
        returns t.seek(off, way) | 
    
convertible to dual_seekable or to bidirectional_seekable | 
        returns t.seek(off, way, which) | 
    
convertible to seekable | 
        returns t.seek(off, way) | 
    
| otherwise | compile-time error | 
In short:
T is a standard stream or stream buffer type, delegates to std::basic_streambuf::pubseekoff or std::basic_streambuf::pubseekpos, as appropriate.
    T allows only one reading head, delegates to a member function seek which takes a stream_offset and a seekdir but no openmode.
    T allows random access with two reading heads, delegates to a member function seek which takes a stream_offset, a seekdir and an openmode.
    seek is a compile-time error.
© 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)