
-----Original Message----- From: boost-bounces@lists.boost.org [mailto:boost-bounces@lists.boost.org] On Behalf Of Peter Dimov Sent: 18 October 2007 17:41 To: boost@lists.boost.org Subject: Re: [boost] Bind and MSVC 8 SP1
Ben Pope:
Hi,
I just started testing Boost 1.34.1 and have found this piece of code produces a warning, which was not present in Boost 1.33.1:
...
It seems to pick this specialisation: template< class M, class T > struct add_cref< M T::*, 1 > { typedef M const & type; //bind.hpp(1575) };
When I would have thought this one more appropriate:
template< class R, class T > struct add_cref< R (T::*) (), 1 > { typedef void type; // bind.hpp(1580) };
Any ideas?
None. We've reported this to Microsoft and they have (after much deliberation) classified it as a bug, but apparently a fix would be non-trivial and I don't know whether they plan to ever issue one for the MSVC 8 line.
The warning is harmless, as the wrong specialization is only used in a return type in an overload that isn't chosen (the only purpose of this specific specialization is to avoid the warning).
Can I take it that the warnings I moaned about in Trac #1097: keyword.hpp generates many warnings C4180: qualifier applied to function type has no meaning; ignored is the same problem, and can be safely suppressed? (And if do should someone close the Trac item?) Thanks Paul --- Paul A Bristow Prizet Farmhouse, Kendal, Cumbria UK LA8 8AB +44 1539561830 & SMS, Mobile +44 7714 330204 & SMS pbristow@hetp.u-net.com