C++篇之成员函数注册为回调函数

2021/6/28 11:20:16

本文主要是介绍C++篇之成员函数注册为回调函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

#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;
};

template <typename Ret, typename... Params>
std::function<Ret(Params...)> Callback<Ret(Params...)>::func;

typedef void (*callback_t)(uint8_t *, int, void *);


//main
GstreamDecode* decode = new GstreamDecode();
  Callback<void(uint8_t *, int, void *)>::func = std::bind(&GstreamDecode::PushFrameArg, decode, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3);   callback_t func = static_cast<callback_t>(Callback<void(uint8_t *, int, void *)>::callback);   obj.registerVideoDataCb(func);

遇到了个需要成员函数作为回调函数的问题,特此记录一下,代码部分非原创,源链接已经忘记,小做记录以备查询



这篇关于C++篇之成员函数注册为回调函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程