From: John Maddock (john_at_[hidden])
Date: 2006-10-18 07:59:15


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.