
Joaquín Mª López Muñoz wrote:
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
I've tested with VC-6, 7 and 7.1 and with Borland 5.6.4 and 5.8.2 and they all pass now, so yes please do commit. Thanks, John.