当前位置: 首页 > news >正文

韩国电商网站排名网站建设的广告词

韩国电商网站排名,网站建设的广告词,做网站的没有进项票怎么办,nodejs php wordpress目的#xff1a; 学习C模板的编写#xff0c;使用模板类包装一个可调用对象 可调用对象包括#xff1a;普通函数#xff0c; lambda表达式#xff0c; 类成员函数 可以参考到QtConcurrent::run的实现#xff0c;可以看到这个函数有非常多重载#xff0c;其中可以接受类…目的 学习C模板的编写使用模板类包装一个可调用对象 可调用对象包括普通函数 lambda表达式 类成员函数 可以参考到QtConcurrent::run的实现可以看到这个函数有非常多重载其中可以接受类成员函数的重载如下(截图仅能展示部分) 个人认为这里的实现不是很好这里是针对不同参数个数的函数每一个都做一个重载如果能实现一种方式可以适配任意类型和数量的参数就好了 class AsyncTask { public:AsyncTask();// 支持可调用对象template typename Functor, typename ...Argsstatic QFuturestd::result_of_tFunctor(Args...) postTask(Functor func, Args ...args){return QtConcurrent::run(std::forwardFunctor(func), std::forwardArgs(args)...);}// 支持类成员函数template typename Class, typename ReturnType, typename... Argsstatic QFutureReturnType postTask(Class* instance, ReturnType(Class::*memFunc)(Args...), Args... args){return QtConcurrent::run(instance, memFunc, std::forwardArgs(args)...);} };使用 class A { public:int memFunc(double y, int x){qDebug() class member func: y x QThread::currentThreadId();return x;} };int normalFunc(int x) {qDebug() normal function: x QThread::currentThreadId();return x; }int main(int argc, char *argv[]) {QFuturebool future AsyncTask::postTask([](int x, int y){qDebug() lambda: x y QThread::currentThreadId();return x y;}, 3, 2); //绑定lambda表达式QFutureint future2 AsyncTask::postTask(normalFunc, 5); //绑定普通函数A x;QFutureint future3 AsyncTask::postTask(x, A::memFunc, 2.5, 3); //绑定类成员函数}使用模板类包装类成员函数 // 模板类用于包装类成员函数指针 template typename Class, typename RetType, typename ...Args class MemberFunctionPointer { public:using MemFuncPtr RetType(Class::*)(Args...); //类成员函数指针MemberFunctionPointer(MemFuncPtr ptr, Class* obj): m_ptr(ptr), object(obj){}RetType invoke(Args... args){return (object-*m_ptr)(std:: forwardArgs(args)...);} private:MemFuncPtr m_ptr;Class* object; };// 辅助函数用于模板参数推导 // C17之前, 模板类的模板参数不能自动推导,必须显示指出, 例如std::vectorint; std::listint; 而模板函数的模板参数可以自动推导, 所以标准库才提供 std::make_pair的函数,减轻模板类的编码负担 template typename Class, typename RetType, typename... Args MemberFunctionPointerClass, RetType, Args... make_wrapper(RetType (Class::*fn)(Args...), Class* object) {return MemberFunctionPointerClass, RetType, Args...(fn, object); }使用 auto wrapper make_wrapper(A::memFunc, x);wrapper.invoke(3.2, 8);参考
http://www.w-s-a.com/news/282357/

相关文章:

  • 建个网站多少钱沭阳奥体小区做网站的
  • 广州视频网站建站公司php网页设计作业代码
  • 成都公司网站设计如何制作网址最简单的方法
  • 温州 做网站福建住房城乡建设部网站
  • 网站自动化采集成都网站设计费用
  • 广东专业网站定制建设淘宝网站的人员组织结构
  • 网站改版seo无锡有多少家公司
  • h5美食制作网站模板下载wordpress大学百度云
  • 零陵做网站建立网站的公司平台
  • 某企业电子商务网站建设网站开发实验结论
  • 自己做的网站突然打不开杭州哪些做网站公司好
  • 株洲专业建设网站免费cms内容管理系统
  • 网上建立网站赚钱网站建设方案书纯文字
  • 专业网站设计哪家好it外包合同模板
  • 个人网站备案都需要什么中小企业服务网
  • 佛山网站建设哪个在公司网站投简历该怎么做
  • 八戒网站做推广老域名全部失效请拿笔记好
  • iss服务器网站建设甘肃建设厅网站执业注册中心
  • 域名访问网站 过程网站 免费 托管运营
  • 下单的网站建设教程wordpress php7.1
  • 爱网站查询怎么做网站的图片跳转
  • 阿里云建站百度收录吗北京的设计公司排名
  • 网站制作方案包含哪些内容布吉网站建设方案
  • 吉林省建设安全信息网站宜宾市建设工程质量监督站网站
  • 镇江网站建设远航网络帝国cms 网站地图 自定义
  • 金融网站模板源代码net网站是国际域名吗
  • 北京高端网站建设价格企业网络托管公司
  • 规范门户网站建设没有网站可以做域名解析吗
  • pc 手机网站源码织梦网站修改教程视频教程
  • 江苏省建设厅副厅长网站济南网络建站模板