On Sat, 26 Jul 2003 01:08:00 -0400, "Eric Friedman" <[EMAIL PROTECTED]> wrote:
>In adding output streaming support for variant, I've realized the >standard library packaged with gcc 2.9.7 and below does not support the >templated stream classes. I've also realized that Boost.Tuple features a >workaround addressing this same problem, with a comment to add a defect >macro to boost/config.hpp in the future. The test in Boost.Tuple however is totally wrong (it just tests for the compiler, while it should test for the library - also IIRC the library that ships with gcc 2.95 doesn't have the templated iostreams either). I had this problem with dynamic_bitset and, after discussing it with Phil Edwards (who is one of the maintainers of libstdc++), I came up with the macro that is currently in http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/boost-sandbox/boost-sandbox/boost/dynamic_bitset.hpp?rev=1.28&content-type=text/vnd.viewcvs-markup Basically I just wanted to support pre-3.0 versions of libstdc++, at least the ones that are still in wide usage, and I don't know whether that macro actually detects all of them or not; but it worked on the versions I tried it on and there appears to be nothing better to test for (libstdc++ 3 identifies itself with a suitable macro, __GLIBCPP__, but previous versions don't). Of course I agree that having a single macro in a single place is good, but your solution seems overkilling to me: consider that, though there are cases where you are able, with a couple of macros, to write an inserter or an extractor that works with both old and new iostreams, there are many other cases where the two versions are quite different; take a look, for instance, at the new dynamic_bitset extractor: it is totally different from a (yet to come) old-iostreams version because it uses the stream buffer directly and because it takes into account throwing for eofbit, failbit, etc. In such cases I don't claim that boost developers always write an old-iostream version too, so your macros would probably be far less used than it might appear at first sight) Genny. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost