Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > boost bind


Автор: mrgloom 14.11.2011, 14:21


было так и работало

tg.create_thread(boost::bind(&Compute,tasks));

захотел сделать Compute в классе 
CClass::Compute

пробовал 
tg.create_thread(boost::bind(&CClass::Compute,tasks));

и 
tg.create_thread(boost::bind(&CClass::Compute,_1)(tasks));

не работает.

как правильно?


Автор: azesmcar 14.11.2011, 14:25
Цитата(mrgloom @  14.11.2011,  14:21 Найти цитируемый пост)
пробовал 
tg.create_thread(boost::bind(&CClass::Compute,tasks));

надо this передавать в качестве первого параметра.

Автор: mrgloom 14.11.2011, 14:32
http://www.boost.org/doc/libs/1_47_0/libs/phoenix/doc/html/phoenix/modules/bind/binding_member_functions.html

да, нашел.
tg.create_thread(boost::bind(&CClass::Compute,this, tasks));

Автор: azesmcar 14.11.2011, 14:37
Цитата(mrgloom @  14.11.2011,  14:32 Найти цитируемый пост)
tg.create_thread(boost::bind(&CClass::Compute,this, tasks)); 

Под this подразумевался указатель на объект, для которого вызывается метод, это не обязательно должен быть текущий объект.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)