Espacios de nombres
Variantes
Acciones

std::fpos

De cppreference.com
< cpp‎ | io
Definido en el archivo de encabezado <ios>
template<class State >
class fpos;

Las especializaciones de la plantilla de clase std::fpos identifican posiciones absolutas en una secuencia o en un archivo. Cada objeto de tipo fpos mantiene la posición del byte en la transmisión (generalmente como un miembro privado de tipo std::streamoff) y el estado de cambio actual, un valor de tipo State (normalmente std::mbstate_t).

Se proporcionan los siguientes nombres typedef para std::fpos<std::mbstate_t> (aunque se escriben de manera diferente en el estándar, denotan el mismo tipo):

Definido en el archivo de encabezado <iosfwd>
Tipo Definición
streamposstd::fpos<std::char_traits<char>::state_type>
wstreamposstd::fpos<std::char_traits<wchar_t>::state_type>
u8streampos(C++20)std::fpos<std::char_traits<char8_t>::state_type>
u16streampos(C++11)std::fpos<std::char_traits<char16_t>::state_type>
u32streampos(C++11)std::fpos<std::char_traits<char32_t>::state_type>

Todas las especializaciones de fpos cumplen con los requerimientos de DefaultConstructible, CopyConstructible, CopyAssignable, Destructible y EqualityComparable.

Si State es trivialmente construible por copia, fpos tiene un constructor de copia trivial.

Si State es trivialmente asignable por copia, fpos tiene un operador de asignación de copia trivial.

Si State es trivialmente destructible, fpos tiene un destructor trivial.

Contenido

[editar]Parámetro de plantilla

State - El tipo que representa el estado de cambio.
Requisitos de tipo
-
State debe satisfacer los requisitos de Destructible, CopyAssignable, CopyConstructible y DefaultConstructible.

[editar]Funciones miembro

Obtiene o establece el valor del estado de cambio.
(función miembro pública)

Además, se proporcionan funciones miembro y no miembro para respaldar las siguientes operaciones:

  • Un constructor por defecto que almacena un desplazamiento de cero e inicializa por valor el objeto de estado.
  • Un constructor no explícito que acepta un argumento de tipo (posiblemente const) std::streamoff, que almacena ese desplazamiento e inicializa por valor el objeto de estado. Este constructor también debe aceptar el valor especial std::streamoff(-1): el objeto std::fpos construido de esta manera es devuelto por algunas operaciones de flujo para indicar errores.
  • Conversión explícita de (posiblemente const) fpos a std::streamoff. El resultado es el desplazamiento almacenado.
  • operator== y operator!= que comparan dos objetos de tipo (posiblemente const) std::fpos y devuelve un valor de tipo convertible a bool. p != q es equivalente a !(p == q).
  • operator+ y operator- tal que, para un objeto p de tipo (posiblemente const) fpos<State> y un objeto o de tipo (posiblemente const) std::streamoff:
  • p + o tiene tipo fpos<State> y almacena un desplazamiento que es el resultado de sumar o al desplazamiento de p;
  • o + p tiene un tipo convertible a fpos<State> y el resultado de la conversión es igual a p + o;
  • p - o tiene tipo fpos<State> y almacena un desplazamiento que es el resultado de restar o del desplazamiento de p.
  • operator+= y operator-= que pueden aceptar (posiblemente const) std::streamoff y lo suma o resta del desplazamiento almacenado, respectivamente.
  • operator- que puede restar dos objetos de tipo (posiblemente const) std::fpos produciendo un std::streamoff, tal que para dos de tales objetos p y q, p == q +(p - q).

[editar]Notas

Algunas de las funciones miembro de flujos de E/S devuelven y manipulan objetos del typedef miembro pos_type. Para flujos, estos typedefs miembro son proporcionados por el parámetro de plantilla Traits, que por defecto es std::char_traits, que define sus pos_type como especializaciones de std::fpos. El comportamiento de la biblioteca de flujos de E/S está definido por la implementación cuando Traits::pos_type no es std::fpos<std::mbstate_t> (también conocido como std: :streampos, std::wstreampos, etc.).

[editar]Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
LWG 57 C++98 Se permitió contradictoriamente que streampos y wstreampos fueran diferentes
mientras que se requería que fueran iguales.
se aclaró que eran iguales.
P0759R1 C++98 La especificación no estaba clara y estaba incompleta. Se limpió.
P1148R0 C++11 No estaba claro qué y en qué encabezado están las definiciones u16streampos y u32streampos. Se aclaró.

[editar]Véase también

Representa la posición relativa en el archivo o flujo (desplazamiento desde fpos, suficiente para representar cualquier tamaño de archivo.
(typedef)[editar]
Devuelve el indicador de la posición de salida.
(función miembro pública de std::basic_ostream<CharT,Traits>)[editar]
Establece el indicador de la posición de salida.
(función miembro pública de std::basic_ostream<CharT,Traits>)[editar]
obtiene el indicador de posición del archivo
Original:
gets the file position indicator
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(función)[editar]
close