I’m wondering how to implement what is stated in the title. I’ve tried something like…
std::for_each( a.begin(), a.end(), std::mem_fun_ref( &myClass::someFunc ) )
but I get an error saying that the “term” (I”m assuming it means the 3rd argument) doesn’t evaluate to a function with 1 argument, even though someFunc does take one argument – the type of the objects stored in a.
I’m wondering if what I’m trying to do is possible using the standard library (I know I can do it easily using boost).
P.S. Does using for_each and mem_fun_ref have any performance implications in comparison to just iterating through a manually and passing the object to someFunc?
Even though someFunc is a member with one parameter, mem_fun_ref uses an implicit first argument of “myClass”. You want to use the vector’s items as the 2nd argument .
And there are probably no negative performance implications of using for_each and mem_fun_ref. The compiler will generate comparable code. But, the only way to be sure is to benchmark 🙂