std::codecvt<InternT,ExternT,StateT>:: unshift, do_unshift
|
Definido en el encabezado
<locale>
|
||
|
public
:
result unshift
(
StateT
&
state, ExternT
*
to, ExternT
*
to_end,
|
(1) | |
|
protected
:
virtual
result do_unshift
(
StateT
&
state, ExternT
*
to, ExternT
*
to_end,
|
(2) | |
do_unshift
de la clase más derivada.
codecvt
es dependiente del estado, y
state
representa un estado de conversión que no es el estado de desplazamiento inicial, escribe los caracteres necesarios para regresar al estado de desplazamiento inicial. Los caracteres se escriben en un arreglo de caracteres cuyo primer elemento está apuntado por
to
. No se escriben más de
to_end
-
to
caracteres. El parámetro
to_next
se actualiza para apuntar justo después del último carácter escrito.
Contenidos |
Valor de retorno
Un valor de tipo std::codecvt_base::result , que indica el estado de éxito de la siguiente manera:
ok
|
todos los caracteres necesarios fueron escritos. state ahora representa el estado de desplazamiento inicial |
partial
|
espacio insuficiente en el búfer de salida. to_next == to_end |
error
|
ha ocurrido un error no especificado |
noconv
|
la codificación no depende del estado, no es necesaria secuencia de terminación |
Notas
Esta función es llamada por std::basic_filebuf::close() y en otras situaciones al finalizar una secuencia de caracteres multibyte dependiente del estado.
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 305 | C++98 |
std::
codecvt
<
wchar_t
,
char
,
std::
mbstate_t
>
::
do_unshift
se requería no escribir ningún carácter |
no requerido |
| LWG 380 | C++98 |
el significado de retornar
partial
era 'se necesitan más caracteres
para completar la terminación', pero no se suministra ningún carácter |
corregido para indicar
espacio insuficiente en el búfer |
| LWG 381 | C++98 |
state
no se requería que fuera válido, y
error se retornaba si state era inválido |
state
debe ser válido, y
retornar error indica un error |
| LWG 664 | C++98 |
std::
codecvt
<
char
,
char
,
std::
mbstate_t
>
::
do_unshift
se requería no escribir ningún carácter |
no requerido |
| LWG 665 | C++98 |
std::
codecvt
<
char
,
char
,
std::
mbstate_t
>
::
do_unshift
se requería retornar noconv |
no requerido |
Véase también
|
convierte un carácter ancho a su representación multibyte, dado un estado
(función) |
|
|
[virtual]
|
convierte una cadena de
InternT
a
ExternT
, como cuando se escribe en un archivo
(función miembro protegida virtual) |