I think that for a while the Dinkumware version of the STL provided the implementation of basic_*stream in .cpp file, using the exported templates feature of MSC++. This meant that only the char and wchar_t versions could be used though.