Библиотека Ref — это небольшая библиотека, полезная для передачи ссылок на шаблоны функций (алгоритмы), которые обычно копируют свои аргументы.
с http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/example/chat/chat_server.cpp
по вызову доставить -
void deliver(const chat_message& msg)
{
recent_msgs_.push_back(msg);
while (recent_msgs_.size() > max_recent_msgs)
recent_msgs_.pop_front();
std::for_each(participants_.begin(), participants_.end(),
boost::bind(&chat_participant::deliver, _1, boost::ref(msg)));
}
если
void deliver(const chat_message& msg)
в другом классе принимает сообщение по ссылке, тогда почему вообще используется boost::ref?