When I try to do this is VC++ 2010 :
#include <functional>
#include <boost\bind.hpp>
#include <boost\phoenix.hpp>
float Func()
{
 return 1.f;
}
typedef std::function<float()> F;
int main()
{
 F f2 = boost::phoenix::bind(&Func);  
}
 
 It failed to compile, but when I change boost::phoenix::bind to boost::bind it compiled just fine. What's going on ? I thought phoenix::bind and boost::bind is interchangeable.