Я ищу библиотеку, которая работает аналогично iostreams в том, что она выполняет преобразования и позволяет записывать в буферы памяти, файлы и консоль. Однако я бы хотел что-то безопасное по типу, как iostream. Существуют ли какие-либо серьезные библиотеки, которые это делают?
Возможность указывать кодировку вывода для вещей была бы плюсом.
Обратите внимание, что меня не интересуют библиотеки, которые просто передают iostreams, потому что они просто добавляют больше сложность того, что делает iostreams, например boost :: format
.
PreEmptive comment response: Я не хочу использовать cstdio, потому что при использовании этой системы невозможно, чтобы код не зависел от местоположения вывода. То есть вам нужно вызвать одну функцию для отправки вещей в буферы, и вы должны вызвать другую функцию для отправки вещей в файлы, а другую для консоли и т.д.
EDIT2: В ответ на шквал комментариев ниже: Мне надоели iostreams и cstdio. Вот более конкретные причины. Я старался не говорить "напыщенные слова" в этом вопросе, но люди продолжают спрашивать меня, не схожу ли я с ума, так что вот мое обоснование.
vsnprintf
), чтобы его можно было использовать (РЕДАКТИРОВАТЬ: Хорошо, стандартная библиотека C99, находящаяся на C ++ 11, теперь добавляет большинство / все из них) Мне нравится концепция iostreams, даже использование оператора <<
, что некоторым людям кажется не нравится, но мне кажется, что он слишком спроектирован. Кто-то не должен проводить бесчисленные часы за чтением книг, чтобы быть простым клиентом вашей библиотеки. Конечно, если вы добавляете новый источник вывода или что-то в этом роде, я могу понять, но .... клиенты должны быть защищены от этой сложности. (Разве не для этого нужна библиотека?)
Это единственная неприятная вещь в C ++, которая «просто работает» на других языках программирования, и я не вижу причин для усложнения.