Как создать std::unique_ptr? В этом посте я постараюсь рассмотреть все способы создания std::unique_ptr. Если я что-то забыл — традиционно жду вас в комментариях🙂 📌Способ 1. С помощью вызова конструктора Этот способ появился в C++11: выделяем память под объект и передаём указатель в конструктор std::unique_ptr. const std::unique_ptr<int> v1(new int(1)); 📌Способ 2. Используем std::make_unique Этот способ появился в C++14 для предотвращения утечки памяти. Баг с утечкой памяти пофиксили в C++17, но до сих пор использование std::make_unique — один из самых распространённых способов создания std::unique_ptr. Под капотом он полностью идентичен Способу 1. const auto v2 = std::make_unique<int>(2); 📌Способ 3. Используем std::make_unique_for_overwrite Этот способ появился в C++20. std::make_unique_for_overwrite выделяет память под ресурс, но ресурс при этом default-initialized В примере ниже массив int не инициализируется const auto v3 = std::make_unique_for_overwrite<int[]>(2); 📌Спосо