最近發現了一個奇怪的編譯參數-fno-strict-aliasing,好奇之下做了一點研究; 重點參考Understanding C/C++ Strict Aliasing; 所謂的aliasing就是多個變量指向同一塊內存,變量之間互為別名; strict-aliasing是一種 ...
想講講C STL中各種算法都用到的一個概念,Strict Weak Ordering。 舉個例子,來說明為什么寫C 要知道這個東西。 假如你定義了一個類型MyType,而且這個類型是可比的 comparable,定義了 lt 這個operator : 現在一個vector里裝着很多這種類型的對象,你想對這個 vector 排序: 之所以能用std::sort 來對任意類型排序,而不用給std::s ...
2016-06-05 18:20 1 3716 推薦指數:
最近發現了一個奇怪的編譯參數-fno-strict-aliasing,好奇之下做了一點研究; 重點參考Understanding C/C++ Strict Aliasing; 所謂的aliasing就是多個變量指向同一塊內存,變量之間互為別名; strict-aliasing是一種 ...
智能指針 weak_ptr 使用 weak_ptr用途: 1,解決空懸指針問題 2,解決循環引用問題 weak_ptr特點:沒有*操作和->操作 weak_ptr是不控制所指對象生存周期的智能指針,它指向由一個shared_ptr管理的對象。將一個weak_ptr綁定到一個 ...
main.cpp g_test.h g_test.cpp 輸出結果是調用到g_test.cpp中的testFunc函數中 如果g_test.cpp中沒有實現,則調用的__attribute__((weak))的函數 ...
1、為什么需要weak_ptr? 在正式介紹weak_ptr之前,我們先來回憶一下shared_ptr的一些知識。我們知道shared_ptr是采用引用計數的智能指針,多個shared_ptr實例可以指向同一個動態對象,並維護了一個共享的引用計數器。對於引用計數法實現的計數,總是避免 ...
C++智能指針 weak_ptr weak_ptr 是一種不控制對象生命周期的智能指針, 它指向一個 shared_ptr 管理的對象. 進行該對象的內存管理的是那個強引用的 shared_ptr. weak_ptr只是提供了對管理對象的一個訪問手段. weak_ptr 設計的目的 ...
/賦值對象.(C++如何禁止拷貝對象?詳情看第三篇文章) 4.shared_ptr,通過"引用計數 ...
先看一個例子:Stark和Targaryen家族你中有我,我中有你。我們設計以下類企圖避免內存泄漏,使得析構函數都能調用到: #include<iostream> #includ ...
(所有示例的運行,將#序號所在main()函數去掉序號即可,參考[url]http://www.codeguru.com/cpp/cpp/cpp_mfc/stl/article.php/c15361/[/url])#1 #2get() 返回對象指針use_count() 返回對象的引用 ...