
Hi there, the following snippet doesn't compile which surprises me a little. Could somebody tell what's wrong? #include <algorithm> #include <vector> #include <numeric> #include <boost/spirit/include/phoenix_core.hpp> #include <boost/spirit/include/phoenix_operator.hpp> #include <boost/spirit/include/phoenix_bind.hpp> using namespace boost::phoenix; using namespace boost::phoenix::arg_names; using namespace std; struct point { double _prob; double _x; }; int _tmain(int argc, _TCHAR* argv[]) { std::vector< point > d; double sum_prob = std::accumulate( d.begin() , d.end() , 0.0 , bind( &point::_prob, arg1 ) ); return 0; } I'm using Visual Studio 2005. This is the error I'm getting: error C2296: '.*' : illegal, left operand has type 'double' [snip] Thanks ahead, Christian