|
Boost : |
From: Ben Pope (benpope81_at_[hidden])
Date: 2007-10-18 17:52:51
On 18/10/2007, Peter Dimov wrote:
> 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).
OK, thanks.
Ben
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk