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

17zwd一起做网站普宁北京网站seo公司

17zwd一起做网站普宁,北京网站seo公司,江西奶茶加盟网站建设,网站建设的原因本文主要用C11标准来实现Golang的defer功能。 背景 目前笔者的主力语言是Golang,其次是C,再次是JS、Delphi。在Golang工程中大量使用了defer关键字实现函数的延迟调用。如打开文件的出错处理。近来在C工程中遇到类似需求,在函数返回时进行某…

本文主要用C++11标准来实现Golang的defer功能。

背景

目前笔者的主力语言是Golang,其次是C++,再次是JS、Delphi。在Golang工程中大量使用了defer关键字实现函数的延迟调用。如打开文件的出错处理。近来在C++工程中遇到类似需求,在函数返回时进行某次处理,但函数返回的地方较多,如在返回之前一一写上,略稍麻烦,幸好早有人实现了。

实现

网上的实现方法有很多种,这篇文章中的方法是比较简洁的。代码量不多,就直接抄录在此:

/*https://www.gingerbill.org/article/2015/08/19/defer-in-cpp/
使用:
defer ({printf("defer 0000\n");
});defer (foobar());c++11及以上标准*/#ifndef _MYHEAD_H
#define _MYHEAD_Htemplate <typename F>
struct privDefer {F f;privDefer(F f) : f(f) {}~privDefer() { f(); }
};template <typename F>
privDefer<F> defer_func(F f) {return privDefer<F>(f);
}#define DEFER_1(x, y) x##y
#define DEFER_2(x, y) DEFER_1(x, y)
#define DEFER_3(x)    DEFER_2(x, __COUNTER__)
#define mydefer(code)   auto DEFER_3(_defer_) = defer_func([&](){code;})#endif

调用代码片段如下:

void defer_func()
{printf("goodbye\n");
}void defer_test()
{mydefer ({printf("mydefer 0000\n");});mydefer ({printf("mydefer 11111\n");printf("mydefer 22222\n");});mydefer (defer_func());
}

编译示例:

g++ -std=c++1y -Wall main.cpp 

输出结果如下:

goodbye
mydefer 11111
mydefer 22222
mydefer 0000

小结

作为业务使用者,本着拿来主义的精神,直接上述代码就能实现功能。限于精力,不再深入研究C++的特性。

http://www.ds6.com.cn/news/5766.html

相关文章:

  • 福州网站建设机构推广专员
  • 做网站应注意什么百度推广图片
  • 宝鸡网站建设公司电话推广一手渠道
  • 不用虚拟机可以做网站吗思亿欧seo靠谱吗
  • 关于建设网站的培训知识网络营销职业规划300字
  • 品牌建设部石狮seo
  • 佛山做推广网站的福州seo排名优化公司
  • 住房和城乡建设部建造师网站郑州seo外包顾问
  • 爱用建站 小程序帮忙推广的平台
  • 做相亲网站友链查询站长工具
  • 网站推广方法有哪些如何进行搜索引擎优化?
  • 大连网站设计哪里有做俄罗斯搜索引擎
  • 产品网站建设赣州seo唐三
  • 阿里云wordpress安装目录seo站群优化技术
  • 制作团购网站如何在百度免费发布广告
  • web前端网页设计总结seo兼职
  • 建设银行网站打不开别的网站可以吗中国今天最新军事新闻
  • 昆明做个人网站seo搜索引擎优化期末考试
  • 免费行情软件下载海外网站推广优化专员
  • 苏州发布最新疫情防控通告知名的搜索引擎优化
  • wordpress建站视频广州seo优化电话
  • 展示型网站一样做seo优化淘宝代运营公司
  • 精神文明建设网站模板cba目前排行
  • 怎么做网站demoseo优化包括
  • 数据库查询网站建设郑州抖音推广
  • 工商银行门户网站是什么意思大地seo
  • 镇江做网站的今日最近的新闻大事10条
  • 网站建站建设哪家好免费有效的推广网站
  • 有什么做h5的网站网站页面禁止访问
  • 上海市安全生产建设协会网站采集站seo课程