Я очень новичок в библиотеках boost.повышающие функции функции указатели
Я пытался что-то сделать для графической программы, привязывая обратные вызовы, прошедшие , к glutDisplayFunc() и т. Д. Для одного класса.
Я хотел выполнить это, не имея постоянного объекта глобального класса.
Для объяснения в коде:
class CallbackHolder {
public:
void dostuff(void) {
// etc.
}
};
void bind() {
glutIdleFunc((new CallbackHolder())->dostuff);
}
Я знаю, что это возможно за счет использования повышающего :: затруднительного и повышение :: функции.
Одна из проблем, которые я видел, однако, преобразует функцию boost :: обратно в обычный указатель на функцию.
Как бы вы это сделали?
Вы не можете преобразовать 'boost :: function' в обычный указатель функции. Вы должны использовать регулярную обычную функцию в качестве обратного вызова, нет никакого способа обойти это. –