std::fpos
| 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 |
streampos
|
std::fpos<std::char_traits<char>::state_type>
|
wstreampos
|
std::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.
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.
| ||
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 especialstd::streamoff(-1): el objetostd::fposconstruido de esta manera es devuelto por algunas operaciones de flujo para indicar errores.
- Conversión explícita de (posiblemente
const)fposa std::streamoff. El resultado es el desplazamiento almacenado.
operator==yoperator!=que comparan dos objetos de tipo (posiblementeconst)std::fposy devuelve un valor de tipo convertible abool.p != qes equivalente a!(p == q).
operator+yoperator-tal que, para un objetopde tipo (posiblementeconst)fpos<State>y un objetoode tipo (posiblementeconst) std::streamoff:
p + otiene tipofpos<State>y almacena un desplazamiento que es el resultado de sumaroal desplazamiento dep;o + ptiene un tipo convertible afpos<State>y el resultado de la conversión es igual ap + o;p - otiene tipofpos<State>y almacena un desplazamiento que es el resultado de restarodel desplazamiento dep.
operator+=yoperator-=que pueden aceptar (posiblementeconst) std::streamoff y lo suma o resta del desplazamiento almacenado, respectivamente.
operator-que puede restar dos objetos de tipo (posiblementeconst)std::fposproduciendo un std::streamoff, tal que para dos de tales objetospyq,p == q + (p - q).
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.).
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 diferentesmientras 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ó. |
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) | |
| Devuelve el indicador de la posición de salida. (función miembro pública de std::basic_ostream<CharT,Traits>)
| |
| Establece el indicador de la posición de salida. (función miembro pública de std::basic_ostream<CharT,Traits>)
| |
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) |