boost::bind performance

Started by
2 comments, last by noe 17 years, 7 months ago
Correct me if i'm wrong: when I create a binder with help of boost::bind I get a functor object that is part of some hierarchy with overloaded virtual method operator(), so when I want to use that in something like std::for_each I get a virtual call for every object in given range? Beacause that would be an argument for not using it in speed critical code but instead write a "dedicated" functor for given task
Advertisement
I believe boost::bind uses compile-time polymorphism, not run-time polymorphism.
In functors, operator() is not overloaded due to inheritance - that would make no sense to have a baseclass that would define operator(). Typically, the class hierarchy only defines types (see std::unary_function<> for more information). So no, there is no penalty due to a virtual function call.

Regards,
ok, thanks I'll keep using it then ;)

This topic is closed to new replies.

Advertisement