2013-10-25 3 views
0

настоящее время у меня что-то вроде этогохранения выходной импульс :: BIND в подталкивание :: функция

void asomeMethod(int q) 
{ 
    std::cout << "Method with parameter " << q ; 
} 

int main() 
{ 
    boost::function<void(int)> parfunct; 
    parfunct = boost::bind(&asomeMethod,12); 
    parfunct; //Does not call asomeMethod ?? 
    return 0; 
} 

Я хочу, чтобы вызвать функцию PTR, но метод не вызывается? Любые предложения о том, что я могу делать неправильно?

ответ

1

Это должно быть boost::function<void()>, так как аргумента нет.

Затем вызовите его как функцию:

parfunct(); 
+0

в этом случае я получаю ошибку \t 'ошибка C2064: термин не оценить на функцию, принимающую 0 arguments' – Rajeshwar

+0

@Rajeshwar: К сожалению, исправлено. Посторонние аргументы в 'bind' игнорируются, тонкая ошибка ... Тип' function' должен быть тем, что вы * вызываете *, а не вводом 'bind'. –

+1

Да, это сделал трюк - Отметили как asnwer после таймера – Rajeshwar