Boost logo

Boost :

From: Jeffrey Williams (jwilliams_at_[hidden])
Date: 2006-12-13 17:49:35


Hi all,

The following code compiles on mingw (gcc 3.4.5) but not on VC++ 8.0
express, and I am asking if anyone could tell me which compiler is right.

Here is simple test case:

struct caster
{
template<class T> operator boost::function<T>() const;
};

void func(boost::function<void(int)>) { }

void foo()
{
  func(caster());
}

This compiles on mingw (it doesn't link obviously) but it won't even compile
on VC++ 8.0 express. I am assuming one or the other is incorrect (perhaps
they both are) so which is it? and also, is there a proper way to do that
conversion that would work on both compilers. doing a specific conversion
operator boost::function<void(int)> does work on both, but not the template.

Jeff


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk