[cpp] 使用 shared_ptr的自定义删除函数模拟 go 语言的 defer 功能
Posted adream307
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[cpp] 使用 shared_ptr的自定义删除函数模拟 go 语言的 defer 功能相关的知识,希望对你有一定的参考价值。
go
语言的 defer
定义函数退出时的行为,c++
的 shared_ptr
可以自定义deleter
函数明确变量在析构时的行为,因此可以用来模拟 go
语言中的 defer
行为
#include <memory>
#include <iostream>
int main()
int x = 5;
std::shared_ptr<int> tx(nullptr,[&](int *)std::cout << "defer x = " << x << std::endl;);
std::cout << "main x = " << x << std::endl;
return 0;
程序输出
main x = 5
defer x = 5
以上是关于[cpp] 使用 shared_ptr的自定义删除函数模拟 go 语言的 defer 功能的主要内容,如果未能解决你的问题,请参考以下文章