функция copy_and_swap: обобщённая реализация присваивания через конструктор копий и swap