Я объявляю конкретную функцию клавиатуры обратного вызова, так как это в моем коде:Что означает T :: * в объявлении списка параметров функции?
void keyboardEventCallback(const pcl::visualization::KeyboardEvent &event, void* viewer_void, void* widget_void);
Событие клавиатуры реальное событие передается функции обратного вызова viewer_void параметр является указателем на класс PCLVisualizer, который создает окно рендеринг и widget_void - это указатель на виджет, который взаимодействует с Qt.
В документации к ПКЛ, функция регистрации передает аргументы для регистрации функции клавиатуры, как
boost::signals2::connection registerKeyboardCallback(void(T::*callback)(const pcl::visualization::KeyboardEvent&, void*), T& instance, void* cookie=nullptr)
Так что мой вопрос, , что есть смысл T::*
внутри функции регистрации декларации и почему я не позволил передать это:
m_vis->registerKeyboardCallback(keyboardEventCallback, (void*)&m_vis, (void*)this);
где m_vis
является визуализатор, keyboardcallback
- это обратный вызов, и это виджет.
Почему я не могу зарегистрироваться так. Это для библиотеки облаков точек.