Original Post
I've been doing a lot of prototyping in C++ for the standard library of an imaginary new programming language that I've been working on. In the latest section I focused on, a generic server class, I discovered std::streambuf, and it's wonderful array of obfuscation (for implementing socket i/o). Part of the problem is the poor name choices. Another is the number of odd quirks (such as returning something other than EOF to signal the EOF character, as EOF is returned to indicate an end of file, and the useage of macros to automate this). Another may be the inherit binding of buffering and actual i/o into the same class (I'm unsure if this is an actual drawback or not). In any case, something needs to change, and I plan to do it :). I've allways liked iostreams to a point - there's annoying quirks like binary mode still converting numbers to text, but one can live with them by wrapping them. I've gotten to the point where this no longer contents me, I want a fresh clean and working model. I'm looking for some of the existing alternatives to the standard iostreams, as well as opinions on their pros and cons that people have experienced with them. It dosn't even have to be a C++ alternative, I'm more interested in their modelings than their exact implementation. A feature that may or may not be of importance is the handling of character data - there will be string literals as per C++ in this language, however, they'll be extracted during the compilation and replaced with placeholder string-ids, whereas a secondary file will be created that maps these ids to actual strings. This is to attempt to help localization, by providing direct language support for multiple locales rather than relying on macro hackery or the like. Opinions, criticisms, etc. greatly appreciated.