Namespaces
Variants

std::codecvt<InternT,ExternT,StateT>:: unshift, do_unshift

From cppreference.net
Definido en el encabezado <locale>
public :

result unshift ( StateT & state, ExternT * to, ExternT * to_end,

ExternT * & to_next ) const ;
(1)
protected :

virtual result do_unshift ( StateT & state, ExternT * to, ExternT * to_end,

ExternT * & to_next ) const ;
(2)
1) Función miembro pública, llama a la función miembro do_unshift de la clase más derivada.
2) Si la codificación representada por esta faceta 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

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)