Repo for sixth homework on 2019/2020 C++ course
Реализуйте обобщенную функцию swap
, которая принимает две ссылки на объекты и меняет их местами в памяти. Предполагается, что объекты переданного типа могут быть скопированы (copy) или перемещены (move). Использование std::swap
запрещено.
Реализуйте шаблонную версию класса Array, который является безопасной оболочкой вокруг массива на куче. Минимальный список методов, которые должен поддерживать класс Array, приведен в псевдокоде ниже:
template <typename T>
class Array
{
// Минимальный список методов:
size_t size() const
T& operator[](size_t)
};
Реализуйте собственный MyUniquePtr
. По функционалу он должен быть как std::unique_ptr
class MyUniquePtr{
MyUniquePtr(/* сырой указатель */);
// копирование запрещено
// перемещение разрешено, разрушающее
}