Quais alternativas sérias existem para a biblioteca IOStream? (além do cstdio)

Estou procurando uma biblioteca que opere de forma semelhante ao iostreams, na medida em que realiza conversões e permite gravar em buffers de memória, arquivos e no console. No entanto, eu gostaria de algo do tipo seguro, como o iostream. Existem bibliotecas sérias que fazem isso?

er capaz de especificar a codificação de saída para as coisas seria uma vantage

Observe que não estou interessado em bibliotecas que simplesmente fazem frente ao iostreams porque apenas adicionamMai complexidade ao que o iostreams está fazendo, por exemploboost::format.

Resposta do comentário pré-Emptive: Eu não quero usar o cstdio porque, usando esse sistema, é impossível que o código seja independente da localização da saída. Ou seja, é necessário chamar uma função para enviar itens para buffers e chamar outra função para enviar itens para arquivos e outra para o console etc.

EDIT2: Em resposta à enxurrada de comentários abaixo: Estou farto de iostreams e cstdio. Aqui estão razões mais específicas. Tentei manter o meu "discurso retórico" fora dessa questão, mas as pessoas continuam me perguntando se estou fora do controle, então aqui está minha justificativ

cstdio Não é possível manipular caracteres Unicode corretamente Não é possível gravar algo como uma string sem fazer o gerenciamento manual de buffer Frequentemente requer suporte a extensões não padrão (por exemplo,vsnprintf) para ser utilizável (EDIT: Ok, a biblioteca padrão do C99 estando em C ++ 11 adiciona a maioria / todos esses agora) Não é possível alterar a localização da saída sem alterar o código original (extensões fora do padrão, por exemplo, na glibc permitem tratar um ponteiro de arquivo como um buffer, o que faz isso ... mas ainda assim, uma extensão fora do padrão)quot;Torna a segurança" divertida "(até o ponto em que capítulos inteiros são dedicados em documentos de segurança que explicam problemas, por exemplo, com as sequências de formato de" printf "e outrasNão digite safe iostreamsLent Totalmente complicado demais para um cliente. Se você usar apenas o que vem com a biblioteca padrão, é ótimo, mas tentar estender as coisas é quase impossível. Li todo o livro "Standard C ++ IOStreams and Locales" - o único livro aparentemente disponível sobre o assunto -duas veze - e ainda não sei o que está acontecend

Eu amo iostreams em conceito, até o uso deoperator<< do qual algumas pessoas parecem não gostar, mas parece totalmente demais para mim. Alguém não deve ter que gastar inúmeras horas lendo livros para ser um cliente simples da sua biblioteca. Claro, se você estiver adicionando uma nova fonte de saída ou algo assim, eu poderia entender, mas ... os clientes devem estar protegidos dessa complexidade. (Não é para isso que serve uma biblioteca?)

Essa é a única coisa dolorosa em C ++ que "simplesmente funciona" em outras linguagens de programação, que não vejo motivo para ser complicad

questionAnswers(3)

yourAnswerToTheQuestion