C++篇之成員函式註冊為回撥函式
阿新 • • 發佈:2021-06-28
#include <functional> template <typename T> struct Callback; template <typename Ret, typename... Params> struct Callback<Ret(Params...)> { template <typename... Args> static Ret callback(Args... args) { return func(args...); } static std::function<Ret(Params...)> func; }; templateCallback<void(uint8_t*,int,void*)>::func=std::bind(&GstreamDecode::PushFrameArg,decode,std::placeholders::_1,std::placeholders::_2,std::placeholders::_3); callback_tfunc=static_cast<callback_t>(Callback<void(uint8_t*,int,void*)>::callback); obj.registerVideoDataCb(func);<typename Ret, typename... Params> std::function<Ret(Params...)> Callback<Ret(Params...)>::func; typedef void (*callback_t)(uint8_t *, int, void *);
//main
GstreamDecode*decode=newGstreamDecode();
遇到了個需要成員函式作為回撥函式的問題,特此記錄一下,程式碼部分非原創,源連結已經忘記,小做記錄以備查詢