日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

[C++11]独占的智能指针unique_ptr的删除器

發布時間:2023/12/4 c/c++ 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [C++11]独占的智能指针unique_ptr的删除器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

unique_ptr 指定刪除器和 shared_ptr 指定刪除器是有區別的,unique_ptr 指定刪除器的時候需要確定刪除器的類型,所以不能像 shared_ptr 那樣直接指定刪除器,舉例說明:

代碼如下:

#include <iostream> #include <memory> #include <string> using namespace std;class Test { public:Test(){cout << "construct" << endl;}Test(int x) :m_num(x){cout << "construct x = " << x << endl;}Test(string str){cout << "construct str = " << str << endl;}~Test(){cout << "destruct" << endl;}void setValue(int v){m_num = v;}void print(){cout << "m_num = " << m_num << endl;}private:int m_num; };int main() {using ptrFunc = void(*)(Test *);unique_ptr<Test,ptrFunc> ptr4(new Test("hello"), [](Test * t){cout << "------------------" << endl;delete t;});return 0;}

測試結果:

代碼如下:

//error 捕獲了外部變量的lambda表達式只能看做仿函數using ptrFunc = void(*)(Test *);unique_ptr<Test, ptrFunc> ptr4(new Test("hello"), [=](Test * t){cout << "------------------" << endl;delete t;});

上面的代碼中錯誤原因是這樣的,在 lambda 表達式沒有捕獲任何外部變量時,可以直接轉換為函數指針,一旦捕獲了就無法轉換了,如果想要讓編譯器成功通過編譯,那么需要使用可調用對象包裝器來處理聲明的函數指針:

#include <iostream> #include <memory> #include <string> #include <functional> using namespace std;class Test { public:Test(){cout << "construct" << endl;}Test(int x) :m_num(x){cout << "construct x = " << x << endl;}Test(string str){cout << "construct str = " << str << endl;}~Test(){cout << "destruct" << endl;}void setValue(int v){m_num = v;}void print(){cout << "m_num = " << m_num << endl;}private:int m_num; };int main() {//error 捕獲了外部變量的lambda表達式只能看做仿函數/*using ptrFunc = void(*)(Test *);unique_ptr<Test, ptrFunc> ptr4(new Test("hello"), [=](Test * t){cout << "------------------" << endl;delete t;});*///捕獲了外部變量的lambda表達式只能看做仿函數,要把它包裝才可以unique_ptr<Test,function<void(Test*)>> ptr4(new Test("hello"), [=](Test * t){cout << "------------------" << endl;delete t;});return 0;}

獨占的智能指針可以管理數組類型的地址,能夠自動釋放。

代碼如下:

int main() {//獨占的智能指針可以管理數組類型的地址,能夠自動釋放unique_ptr<Test[]> ptr4(new Test[3]);return 0; }

測試結果:

總結

以上是生活随笔為你收集整理的[C++11]独占的智能指针unique_ptr的删除器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕人妻伦伦 | 久久久精品美女 | 毛片看看 | av手机观看 | 激情视频一区 | av在线不卡观看 | 欲涩漫入口免费网站 | 黄毛片在线观看 | 久草精品在线观看 | 黄色欧美网站 | 麻豆av影视 | 神马午夜在线 | 超碰97在线资源站 | 泰坦尼克号3小时49分的观看方法 | 免费看特级毛片 | 成人在线观看网 | 蜜桃网av | 狠狠狠狠干 | 手机在线看片 | 久久理论| 理论片一级 | 青青草五月天 | 午夜视频大全 | 国产欧美精品一区二区色综合 | 91红桃视频| 欧美一级性 | av动漫免费观看 | 毛片少妇 | 亚洲第一视频在线播放 | 黄色高清免费 | 成人高清 | 国产免费一区二区三区最新不卡 | 德国老妇性猛交 | 亚洲一区二区免费视频 | 欧美一区一区 | 日本aa视频| 精品国产福利 | 97超碰在线播放 | 亚洲av熟女高潮一区二区 | 男女日批免费视频 | 日韩在线视屏 | 黄久久久 | 九九热最新视频 | 亚洲国产综合视频 | 很黄很污的视频网站 | av网站观看| 小少妇哺乳喂奶播放 | 国产女人爽到高潮a毛片 | 久久春色| 亚洲 激情 小说 另类 欧美 | 欧美日本成人 | 国产一区二区三区视频免费在线观看 | 1级av| 国产18一19sex性护士 | 国产美女自慰在线观看 | 一级全黄裸体片 | 国产视频中文字幕 | 亚洲色图 欧美 | 亚洲激情文学 | 熟女自拍一区 | 亚洲综合视频一区 | 国产精品99久| 成年人在线播放 | av激情小说 | 在线色站 | 在线观看 一区 | 69视频一区二区三区 | 美女扒开尿口给男人看 | 欧美日韩国产综合在线 | 精品裸体舞一区二区三区 | 久久久噜噜噜 | 国产成人免费在线 | 中文字幕四区 | 国产11页 | 久久久一区二区三区四区 | 色久视频| 天天操狠狠干 | 极品白嫩丰满美女无套 | 黄色精品视频在线观看 | 夜夜天天| 久久这里只有精品国产 | 国产精品久久久久影院色老大 | 日本免费a视频 | 男人看片网站 | 欧美 日韩 高清 | 99亚洲视频 | 东京热加勒比无码少妇 | 国产亚洲av片在线观看18女人 | 黄瓜污视频 | 手机看片日本 | 99国产精品免费视频 | www.99re7.com| 中国国产黄色片 | 国产做爰视频免费播放 | 国产无遮挡又黄又爽又色 | www.com欧美| 爱情岛论坛永久入口 | 国产www | 亚洲人午夜精品 |