私は自分のコード内でこのように、特定のキーボードコールバック関数を宣言:キーボードイベントは、コールバック関数に渡された実際のイベントで、viewer_voidパラメータがためのウィンドウを生成PCLVisualizerクラスへのポインタであるT :: *は関数のパラメータリストの宣言で何を表していますか?
void keyboardEventCallback(const pcl::visualization::KeyboardEvent &event, void* viewer_void, void* widget_void);
レンダリングし、widget_voidはQtとインターフェースするウィジェットへのポインタです。 PCLのドキュメントで
、登録機能が
boost::signals2::connection registerKeyboardCallback(void(T::*callback)(const pcl::visualization::KeyboardEvent&, void*), T& instance, void* cookie=nullptr)
のようにキーボードの機能を登録するための引数を渡すだから私の質問はT::*
の意味は、登録関数宣言、およびの内側にあるもの、ですなぜ私はこれを渡すことが許可されていないです:
m_vis
はビジュアライザあるm_vis->registerKeyboardCallback(keyboardEventCallback, (void*)&m_vis, (void*)this);
、 keyboardcallback
がコールバックであり、これがウィジェットです。
なぜこのように登録できないのですか?これはポイントクラウドライブラリのためのものです。