原创 C++模板類型推導大全

前言和背景 《Effective c++》一書中條款01爲:視c++爲一個語言聯邦,該條款中將c++語言分爲4個次語言組成的“聯邦政府”,其分別爲:兼容基礎c的部分、c++面向對象的部分、c++模板部分、stl庫部分。我非常認同將c++語言

原创 c++enable_shared_from_this源代碼分析(from visutal studio 2017)

enable_shared_from_this能讓一個對象t(該對象被shared_ptr管理,假設名爲pt)安全地生成其他額外的shared_ptr實例,它們pt共享對象t的所有權。 如果一個類T繼承enable_shared_from

原创 c++ weak_ptr源代碼分析(from visual studio 2017)

weak_ptr是一種持有被shared_ptr管理者的資源的弱引用的智能指針。它必須通過轉化爲shared_ptr來訪問管理的資源。 weak_ptr被用來跟蹤資源,它通過轉化爲shared_ptr來獲取臨時所有權。如果這個時候原先擁有

原创 c++ shared_ptr

shared_ptr是通過指針保持對象共享所有權的智能指針。多個shared_ptr對象可佔有同一資源,當最後一個shared_ptr對象被銷燬或者通過operator=,reset()操作賦予另一指針時,其管理的資源纔會被回收。 管理同

原创 c++ unique_ptr

unique_ptr是擁有獨立對象所有權語義的智能指針,換言之,一個 unique_ptr對象所擁有的指針只允許它自己佔有,不允許多個對象共享(這裏希望大家理解語義和語法規則的區別,從語義上來說unique_ptr的指針不允許共享,但c