Alex Burton wrote:
>
> Rather than doing a special case for VC++,
It's not that big a deal. It just ifdefs a single line, and it's way
down in the implementation level. I'm more bothered by the ostream
casting BS in query.h. It's not the first time I've had to do something
somewhat ugly to work around VC++ weaknesses.
> could you just use the
> default constructor for std::ostream and then call init as before ?
Maybe, but this is known to work, and it's below my ugliness tolerance
threshold, so in it goes.
I just checked it the change, so test and comment away...
> The code in the default constructor for basic_ofstream would be worth a
> look in the relavent implementations of std c++ library, just do
> whatever they are doing ?
Either way we do it, we're depending on current implementations not
changing. There doesn't seem to be a great amount of difference here,
practically speaking.
The classes in the C++ Standard Library weren't designed to be base
classes, so we're just going to have to put up with a certain level of
weirdness. This isn't the first time we've had to chase down something
where we're depending on things being one way, and they are in fact
working another way, and it won't be the last.