登录
首页 >  Golang >  Go问答

什么是 C++ 中的标准延迟/终结器实现?

来源:Golang技术栈

时间:2023-03-27 10:29:29 234浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《什么是 C++ 中的标准延迟/终结器实现?》将会介绍到golang等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

Golang 风格的一般概念在[此处](https://marcoarena.wordpress.com/2012/08/27/mix-raii-and- lambdas-for-deferred-execution/)和[此处](http://kri.gs/2013/01/20/defer- cpp/)defer进行了解释。[](https://marcoarena.wordpress.com/2012/08/27/mix-raii-and- lambdas-for-deferred-execution/)

我想知道,STL(C++11,C++14,...)或者 Boost 或者其他一些库是否包含这样一个类的实现?所以我可以直接使用它,而无需在每个新项目中重新实现它。

正确答案

有一个[提案std::unique_resource_t](http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2014/n4189.pdf)将启用类似的代码

auto file=make_unique_resource(::fopen(filename.c_str(),"w"),&::fclose);

对于资源,它定义了一个 general scope_exit,它应该与defer

// Always say goodbye before returning,
auto goodbye = make_scope_exit([&out]() ->void
{
out 

[它将被考虑在 Post-C++17 标准中采用。](https://stackoverflow.com/questions/30405269/will- there-be-standardization-of-scope-guard-scope-exit-idioms)

理论要掌握,实操不能落!以上关于《什么是 C++ 中的标准延迟/终结器实现?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表