Boost logo

Boost :

From: Jared McIntyre (jmcintyre_at_[hidden])
Date: 2007-05-02 00:39:24

Jared McIntyre <jmcintyre <at>> writes:

> Peter Dimov <pdimov <at>> writes:
> > One reason that nobody caught it is that it fails only with class/struct
> > return types. Compilers are a lot of fun.
> >
> > Not.
> >
> > Here's a minimal example that demonstrates the issue, if someone
would like
> > to take this to MS. As a regression against 7.1, it might receive
> > priority:
> Thanks for looking into this. I can submit it to them when I get in on
Monday. I
> assume you meant to put it against VS8? I only have SP1 at work, did
> reproduce this on the base 8.0 release?
> Jared

Ok, I finally have some information to report back. The issue is definitely
a bug in the VS 8 and VS 8 SP1 compilers. Microsoft is now aware of the
bug, but does not believe that they will fix it in time for the VS 9 release.
Their recommendation is to prewrap the member function in a mem_fn
call before the bind:

#include <boost/bind.hpp>
#include <boost/mem_fn.hpp>
#include <string>

class WarningTest
         boost::bind(boost::mem_fn(&WarningTest::Function), this);

     std::string Function()

They warn not to trust the compiler without this workaround. They didn't
have any suggestions for workarounds in the boost::bind code.


Boost list run by bdawes at, gregod at, cpdaniel at, john at