basic_streambuf::overflow
Uma função virtual protegida que pode ser chamado quando um novo caractere é inserido em um buffer cheio.
virtual int_type overflow(
int_type _Meta = traits_type::eof( )
);
Parâmetros
- _Meta
O caractere a inserir em buffer, ou traits_type::EOF.
Valor de retorno
Se a função não obterá êxito, retorna traits_type::eof ou gera uma exceção.Caso contrário, retornará traits_type::not_eof(_Meta).O comportamento padrão é traits_type::eofretornar.
Comentários
Se _Meta não compara igual a traits_type::eof, a função de membro virtual protegido esforça-se inserir o elemento traits_type::to_char_type(_Meta) no fluxo de saída.Pode fazer isso em várias maneiras:
Se write position estiver disponível, pode armazenar o elemento na posição de gravação e incrementar o ponteiro seguir para o buffer de saída.
Pode fazer uma posição de gravação disponível atribuindo o novo ou adicional para o armazenamento buffer de saída.
Pode fazer uma posição de gravação escrevendo disponível fora, a qualquer destino, externo à alguns ou todos os elementos entre o início e os seguintes ponteiros para o buffer de saída.
A função virtual de excedentes, junto com as funções de sincronização e de estouro negativo , define as características da classe streambuf- derivado.Cada classe derivada pode implementar overflow diferente, mas a interface com a classe de fluxo de chamada é a mesma.
A função de overflow com mais freqüência é chamada por funções públicas de streambuf como sputc e sputn quando a área colocada está cheia, mas outras classes, incluindo as classes de fluxo, podem chamar overflow a qualquer momento.
A função consome os caracteres na área colocada entre pbase e ponteiros de pptr e reinicializa colocada na área.A função de overflow também deve receber nCh (se nCh não é EOF), ou pode escolher para colocar esse caractere novo colocada na área de modo que é consumida na chamada a seguir.
A definição de consome varia entre classes derivadas.Por exemplo, a classe de filebuf escrever seus caracteres em um arquivo, quando a classe de strstreambuf as mantenha no buffer (e se o buffer é designado como dinâmico) expande o buffer em resposta a uma chamada para transbordar.Esta expansão é obtida liberando o buffer antigo e novo, substituindo o com maior.Ponteiros são definidos como necessário.
Requisitos
Cabeçalho: <streambuf>
namespace: STD