c++ - Why use bind instead of function call? -


what advantage of using boost::bind in case

std::for_each(participants_.begin(), participants_.end(),     boost::bind(&chat_participant::deliver, _1, boost::ref(msg))); 

instead of

for(iterator actual = participants_.begin(); actual != participants_.end(); ++actual)     (*actual)->deliver(msg); 



link whole code (this simple server example provided boost tutorials).

i think it's pre c++11, algorithms recommended on plain for-loops things. in theory, it's easier understand purpose of code, don't have understand whole loop implementation first. for_each perhaps extreme though, since for-loop implementation simplest.

before lambda functions, 'boost::bind' requirement if wanted use algorithm without defining custom functor.

nowadays, range-based loops, you'd this:

for (auto& participant : participants)     participant->deliver(msg); 

algorithms still better more complicated loops though (especially don't have use 'boost::bind').


Comments

Popular posts from this blog

php - Magento - Deleted Base url key -

javascript - Tooltipster plugin not firing jquery function when button or any click even occur -

java - WrongTypeOfReturnValue exception thrown when unit testing using mockito -