А биндер2нд так устроен. Загляни в исходники.
Здравствуйте, Vitaly_Sedelnik, Вы писали:
VS> L_L>А биндер2нд так устроен. Загляни в исходники.
VS> так есть ли способ вызвать в for_each метод с параметром-ссылкой?
Первый вариант:
class BlockNode
{
public:
void link_block(Block *b );
};
/// ......
std::for_each
(
nodes.begin(),
nodes.end(),
std::bind2nd(std::mem_fun(&BlockNode::link_block), &b )
);
Второй вариант — использовать boost::bind и boost::ref
---------------------------------------------------------
СНП, Artyomov Denis. E-mail: artyomov <at> inbox.ru
Posted via RSDN NNTP Server 1.7 "Bedlam"
Здравствуйте, ArtDenis, Вы писали:
AD>Второй вариант — использовать boost::bind и boost::ref
А что такое boost::bind и boost::ref?
Я ничего подобного
не нашел.
Здравствуйте, Vitaly_Sedelnik, Вы писали:
V_S>А что такое boost::bind и boost::ref? Я ничего подобного
http://www.boost.org/
В этом случае твой код будет выглядеть так:
std::for_each
(
nodes.begin(),
nodes.end(),
boost::bind( &BlockNode::link_block, _1, boost::ref(b) )
);
Если не нравится boost, можешь сам написать аналог std::bind2nd для своего случая.
Денис.
... << RSDN@Home 1.1 beta 1 >>