std:: fpos
|
Défini dans l'en-tête
<ios>
|
||
|
template
<
class
State
>
class fpos ; |
||
Les spécialisations du modèle de classe
std::fpos
identifient des positions absolues dans un flux ou dans un fichier. Chaque objet de type
fpos
contient la position en octets dans le flux (généralement en tant que membre privé de type
std::streamoff
) et l'état de conversion actuel, une valeur de type
State
(généralement
std::mbstate_t
).
Les noms typedef suivants pour std :: fpos < std:: mbstate_t > sont fournis (bien qu'ils soient orthographiés différemment dans la norme, ils désignent le même type) :
|
Défini dans l'en-tête
<iosfwd>
|
|
| Type | Définition |
std::streampos
|
std :: fpos < std:: char_traits < char > :: state_type > |
std::wstreampos
|
std :: fpos < std:: char_traits < wchar_t > :: state_type > |
std::u8streampos
(C++20)
|
std :: fpos < std:: char_traits < char8_t > :: state_type > |
std::u16streampos
(C++11)
|
std :: fpos < std:: char_traits < char16_t > :: state_type > |
std::u32streampos
(C++11)
|
std :: fpos < std:: char_traits < char32_t > :: state_type > |
Toutes les spécialisations de
fpos
satisfont aux exigences
DefaultConstructible
,
CopyConstructible
,
CopyAssignable
,
Destructible
, et
EqualityComparable
.
Si
State
est trivialement copiable,
fpos
a un constructeur de copie trivial.
Si
State
est trivialement assignable par copie,
fpos
a un opérateur d'assignation par copie trivial.
Si
State
est trivialement destructible,
fpos
a un destructeur trivial.
Table des matières |
Paramètre de modèle
| State | - | le type représentant l'état de décalage |
| Exigences de type | ||
-
State
doit satisfaire aux exigences de
Destructible
,
CopyAssignable
,
CopyConstructible
et
DefaultConstructible
.
|
||
Fonctions membres
|
obtient/définit la valeur de l'état de décalage
(fonction membre publique) |
En outre, des fonctions membres et non membres sont fournies pour prendre en charge les opérations suivantes :
- Un constructeur par défaut qui stocke un décalage de zéro et initialise par valeur l'objet d'état.
-
Un constructeur non explicite qui accepte un argument de type (éventuellement const)
std::streamoff
, qui stocke cet offset et initialise par défaut l'objet d'état. Ce constructeur doit également accepter la valeur spéciale
std::
streamoff
(
-
1
)
: le
std::fposconstruit de cette manière est retourné par certaines opérations de flux pour indiquer des erreurs.
-
Conversion explicite de (éventuellement const)
fposvers std::streamoff . Le résultat est le décalage stocké.
-
operator
==
et
operator
!
=
qui comparent deux objets de type (éventuellement const)
std::fposet retournent une valeur prvalue bool . p ! = q est équivalent à ! ( p == q ) .
-
operator
+
et
operator
-
tels que, pour un objet
p
de type (éventuellement const)
fpos<State>et un objet o de type (éventuellement const) std::streamoff
-
-
p
+
o
a le type
fpos<State>et stocke un décalage qui résulte de l'addition de o au décalage de p . -
o
+
p
a un type convertible en
fpos<State>et le résultat de la conversion est égal à p + o . -
p
-
o
a le type
fpos<State>et stocke un décalage qui résulte de la soustraction de o du décalage de p .
-
p
+
o
a le type
- operator + = et operator - = qui peuvent accepter un std::streamoff (éventuellement const) et qui ajoutent/soustraient respectivement cette valeur au décalage stocké.
-
operator
-
qui peut soustraire deux objets de type (éventuellement const)
std::fposproduisant un std::streamoff , tel que pour deux tels objets p et q , p == q + ( p - q ) .
Notes
Certaines des
fonctions membres des flux d'E/S
retournent et manipulent des objets du typedef membre
pos_type
. Pour les flux, ces typedefs membres sont fournis par le paramètre de template
Traits
, qui par défaut est
std::char_traits
, qui définissent leurs
pos_type
comme des spécialisations de
std::fpos
. Le comportement de la bibliothèque de flux d'E/S est défini par l'implémentation lorsque
Traits::pos_type
n'est pas
std
::
fpos
<
std::
mbstate_t
>
(alias
std::streampos
,
std::wstreampos
, etc.).
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 57 | C++98 |
streampos
et
wstreampos
étaient contradictoirement
autorisés à être différents tout en étant requis d'être identiques |
clarifié pour
être identiques |
| P0759R1 | C++98 | la spécification était peu claire et incomplète | nettoyée |
| P1148R0 | C++11 |
peu clair ce que sont et dans quel en-tête se trouvent les
définitions
u16streampos
et
u32streampos
|
clarifié |
|
LWG 2114
( P2167R3 ) |
C++98 | les types de retour non- bool des comparaisons d'égalité étaient autorisés | interdit |
Voir aussi
|
représente la position relative du fichier/flux (décalage depuis fpos), suffisant pour représenter n'importe quelle taille de fichier
(typedef) |
|
|
retourne l'indicateur de position de sortie
(fonction membre publique de
std::basic_ostream<CharT,Traits>
)
|
|
|
définit l'indicateur de position de sortie
(fonction membre publique de
std::basic_ostream<CharT,Traits>
)
|
|
|
obtient l'indicateur de position du fichier
(fonction) |