
John Maddock <john <at> johnmaddock.co.uk> writes:
What's the state of support for VC6/7 in Boost.Operators?
I'm asking because I started investigating the remaining regressions for Boost.Rational and I've come up against a road-block: I can get everything to work (at least I think so), but not the comparison operators, so:
my_rational_1 != my_rational_2
doesn't compile with VC6/7, but does with everything else. I'm assuming that's because these compilers don't find the necessary friend-functions in the operators base classes, or is there something else going on here?
I think this is a testing artifact. The following compiles and works just fine in VC 6.5: #include <boost/rational.hpp> int main() { boost::rational<short> r1,r2; r1!=r2; return 0; }
BTW is the use of Boost.Operators by the rational lib new to this version?
No, the lib is basically unchanged since 1.30, the only significant modification has been the addition of a boolean conversion operator, which is immaterial to this issue (same problems even if I remove it.) What's new about 1.33 wrt 1.32 is the refactoring of rational_test.cpp to use Boost.Test instead of the old homegrown test framework. This is probably hitting some VC6.5/7.0 bug --in particular, my hunches are related to the kind of bugs BOOST_EXPLICIT_TEMPLATE_TYPE is designed to solve.
If so we might just have to mark up VC6/7 as unsupported.
Let me try my hand at it first, I think I'll be able to make it work in a few days.
Thanks,
John.
Joaquín M López Muñoz Telefónica, Investigación y Desarrollo