
Chris Goller
I have code that will compile using msvc 7.1 but will not under intel 9.0.
Here is some simplified code to illustrate my problem:
using namespace boost; using namespace std; typedef array
array_type; array_type a; a[0] = 0; a[1] = 1;
vector
v; v.push_back(a); vector<int> h; for_each(v.begin(), v.end(), mem_fun_ref(&array_type::front));
This compiles and runs using msvc 7.1, but intel 9.0 errors with the following:
error: more than one instance of overloaded function "mem_fun_ref" matches the argument list: function template "std::mem_fun_ref(_Result (_Ty::*)() const)" function template "std::mem_fun_ref(_Result (_Ty::*)())" argument types are: (<unknown-type>)
Solution: Don't use std::mem_fun_ref Use boost::mem_fn instead. http://www.boost.org/libs/bind/mem_fn.html#Q1 HTH, -- Dave Abrahams Boost Consulting www.boost-consulting.com