
John Maddock ha escrito:
Joaquin M Lopez Munoz wrote:
Let me try my hand at it first, I think I'll be able to make it work in a few days.
Thanks Joaquin: in the mean time you might like to know that most of the currect errors are down to problems with using declarations and those compilers, here are my current patches that I think gets everything except those non-member operators working.
Well, I think I've got it. After applying your patch, the remaining issues were: * MSVC 6.5/7.0 needs that the various rational<T> types involved be explicitly instantiated vg as follows: ::boost::rational<short> dummy1; ::boost::rational<int> dummy2; ::boost::rational<long> dummy3; ::boost::rational<MyInt> dummy4; in order to fully generate the associated friend operators. This is not the first time I see this behavior, seems like the compiler has problems with Barton-Nackman injected operators when the associated type is instantiated only inside template code. * Old compilers like MSVC 6.5/7.0, BCB and CW 8.2 seem to have problems with brace-enclosed initializer lists for an aggregate type at line 130. The simple solution is to do the initialization by hand. With these changes things go smooth with MSVC 6.5. I can't try MSVC 7.0, BCB and CW 8.3 but I'm quite confident these will be cleared also. This will leave us with Sun 5.8, about which I don't have any clue. Could you sanity check the attached files? If no objection is raised I can commit later this afternoon Joaquín M López Muñoz Telefónica, Investigación y Desarrollo