00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00039
#ifndef _CPP_BITS_FPOS_H
00040
#define _CPP_BITS_FPOS_H 1
00041
00042
#pragma GCC system_header
00043
00044
#include <bits/c++io.h>
00045
#include <cwchar>
00046
00047
namespace std
00048 {
00049
00050
00051
00052
template<
typename _StateT>
00053
class fpos
00054 {
00055
public:
00056
00057
typedef _StateT __state_type;
00058
00059
private:
00060 streamoff _M_off;
00061 __state_type _M_st;
00062
00063
public:
00064 __state_type
00065 state()
const {
return _M_st; }
00066
00067
void
00068 state(__state_type __st) { _M_st = __st; }
00069
00070
00071
00072 fpos(): _M_off(streamoff()), _M_st(__state_type()) { }
00073
00074 fpos(streamoff __off, __state_type __st = __state_type())
00075 : _M_off(__off), _M_st(__st) { }
00076
00077 operator streamoff()
const {
return _M_off; }
00078
00079 fpos&
00080 operator+=(streamoff __off) { _M_off += __off;
return *
this; }
00081
00082 fpos&
00083 operator-=(streamoff __off) { _M_off -= __off;
return *
this; }
00084
00085 fpos
00086
operator+(streamoff __off)
00087 {
00088 fpos __t(*
this);
00089 __t += __off;
00090
return __t;
00091 }
00092
00093 fpos
00094
operator-(streamoff __off)
00095 {
00096 fpos __t(*
this);
00097 __t -= __off;
00098
return __t;
00099 }
00100
00101
bool
00102
operator==(
const fpos& __pos)
const
00103
{
return _M_off == __pos._M_off; }
00104
00105
bool
00106
operator!=(
const fpos& __pos)
const
00107
{
return _M_off != __pos._M_off; }
00108
00109 streamoff
00110 _M_position()
const {
return _M_off; }
00111
00112
void
00113 _M_position(streamoff __off) { _M_off = __off; }
00114 };
00115
00116
00117
typedef fpos<mbstate_t> streampos;
00118
# ifdef _GLIBCPP_USE_WCHAR_T
00119
typedef fpos<mbstate_t> wstreampos;
00120
# endif
00121
}
00122
00123
#endif