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

网站建设投成都网站制作

网站建设投,成都网站制作,wordpress系统语言设置,比较出名的网站建设公司在c中#xff0c;函数参数类型和返回值类型通常是一个比较明确的信息#xff0c;好像确实无需在这个上面费周折。然而#xff0c;硬编码数据类型会让代码复用性下降#xff0c;如果能够通过某种方式自动获取函数参数和返回值类型#xff0c;对于代码的可复用性#xff0c…在c中函数参数类型和返回值类型通常是一个比较明确的信息好像确实无需在这个上面费周折。然而硬编码数据类型会让代码复用性下降如果能够通过某种方式自动获取函数参数和返回值类型对于代码的可复用性可读性和整洁性都有较大的提升。最近阅读GoogleTest的源码(v1.8.1)发现它采用了模板方法实现了这一点 // googletest/googlemock/include/gmock/internal /gmock-generated-internal-utils.h... template typename F struct Function;template typename R struct FunctionR() {typedef R Result;... };template typename R, typename A1 struct FunctionR(A1): FunctionR() {typedef A1 Argument1;... };template typename R, typename A1, typename A2 struct FunctionR(A1, A2): FunctionR(A1) {typedef A2 Argument2;... };template typename R, typename A1, typename A2, typename A3 struct FunctionR(A1, A2, A3): FunctionR(A1, A2) {typedef A3 Argument3;... };... 上面的代码gmock在使用的时候是配合宏实现不同类型函数的统一。在实际开发中我们可以借助decltypeauto以及函数指针的方式来对函数的返回值和参数类型进行统一拆分只需对上述代码进行稍微调整即可 template typename T struct Function;//以下以__stdcall 调用类型为例如果函数调用类型是 __cdcel, 则需要特化新的模板组 template typename R struct FunctionR __stdcall() {typedef R RESULT; };template typename R, typename A1 struct FunctionR __stdcall(A1) :FunctionR __stdcall() {typedef A1 ARG1; };template typename R, typename A1, typename A2 struct FunctionR __stdcall(A1,A2) :FunctionR __stdcall(A1) {typedef A2 ARG2; };template typename R, typename A1, typename A2,typename A3 struct FunctionR __stdcall(A1, A2,A3) :FunctionR __stdcall(A1,A2) {typedef A3 ARG3; };//如果是函数指针类型可以用以下模板特化组 template typename R struct FunctionR(__stdcall*)() {typedef R RESULT; };template typename R, typename A1 struct FunctionR(__stdcall*)(A1) :FunctionR(__stdcall*)() {typedef A1 ARG1; };template typename R, typename A1, typename A2 struct FunctionR(__stdcall*)(A1,A2) :FunctionR(__stdcall*)(A1) {typedef A2 ARG2; };template typename R, typename A1, typename A2,typename A3 struct FunctionR(__stdcall*)(A1,A2,A3) :FunctionR(__stdcall*)(A1,A2) {typedef A3 ARG3; };// 如果有更多参数可在此处扩展 测试代码 int __stdcall STD_CALL_FUNC_WITH_ONE_PARAM(int b) {int nn 0;return nn; }int main(int argc, char* argv[], char* env[]) {//typedef int (__stdcall *Func)(int);using Func decltype(STD_CALL_FUNC_WITH_ONE_PARAM);Func bvn STD_CALL_FUNC_WITH_ONE_PARAM;Functiondecltype(bvn)::RESULT result1;Functiondecltype(bvn)::ARG1 arg1;auto funcAutoPtr STD_CALL_FUNC_WITH_ONE_PARAM;Functiondecltype(funcAutoPtr)::RESULT result2;Functiondecltype(funcAutoPtr)::ARG1 arg2;Functiondecltype(STD_CALL_FUNC_WITH_ONE_PARAM)::RESULT result3;Functiondecltype(STD_CALL_FUNC_WITH_ONE_PARAM)::ARG1 arg3;return 0; }
http://www.dnsts.com.cn/news/173777.html

相关文章:

  • 湛江网站建设技术托管极限优化wordpress
  • 做网站怎么挣钱最快企业网站开发北京
  • 自己电脑网站建设wordpress可以用火车头采集
  • 中文版wordpress东莞seo搜索
  • 从零开始网站建设国家企业信息系统查询系统
  • 网站建设招标网网站营销工作流程
  • 冠县做网站推广网站服务器数据库
  • 深圳傻瓜式网站建设公司好吗dede 购物网站
  • 临沧网站搭建兴义市建设局网站
  • 制作一个个人网站站长之家0
  • 校园微网站建设方案pptwordpress快站平台
  • 国之珍微站个人网站合肥万户网站建设
  • 做旅游网站的公司装饰设计公司官网
  • 织梦贷款网站源码宁波制作网站的公司
  • 成品网站灬1688个人备案的网站可以做淘宝客吗
  • 宜阳建站php网站开发框架
  • 平原做网站国外最开放的浏览器有什么优势
  • 屏蔽阿里云网站常见的微网站平台有哪些方面
  • 设计软件网站wordpress 优势
  • 大型网站开发教程住房和城乡建设部网站倪虹
  • 广西备案工信部网站济南网络优化推广
  • 广州网站seo优化排名wordpress 数据交互
  • 企业网站制作费做分录重庆工程建设造价信息网站
  • 北京网站建设外包公司哪家好网站网站怎么做
  • 网站设计需要多少费用建筑工程招聘信息网
  • 建站公司网站建设企业建设网
  • 无锡免费做网站惠城东莞网站建设
  • 机关网站建设前期准备工作张家界直播视频
  • 衡阳网站滁州新橙科技网站建设
  • 档案网站建设愿景网络营销理论起源