Skip to content

vvsalash/Smart-Pointers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

Smart-Pointers

Собственная реализация умных указателей в соответствии с C++20.

  • Код хорошо покрыт тестами, проверяется корректное освободжение памяти, отсуствие утечек
  • Используется эффективная реализация, в UniquePtr хранится самописная CompressedPair, для использования EBO.

Иногда объект, созданный на куче, нужно передавать в кучу функций, методов и т.д. В такой ситуации становится сложно уследить за лайфтаймом объекта и моментом, когда нужно освобождать выделенную под объект память.

Хотелось бы пользоваться удобной обёрткой, которая автоматически будет выделять память при создании объекта и освобождать память, когда объект больше не используется --- ровно для этого и существуют умные указатели.

Умные указатели бывают разные. В рамках этого проекта мы рассмотрим три типа, которые отличаются между собой семантикой владения:

  • UniquePtr является единственным владельцем объекта.
  • SharedPtr позволяет множественное владение.
  • IntrusivePtr позволяет множественное владение, как и SharedPtr, использование IntrusivePtr накладывает определенные ограничения на пользовательский тип.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published