Что такое правило пяти и что компилятор генерирует сам?
Если классу понадобился собственный деструктор, конструктор копирования или копирующее присваивание, ему почти наверняка нужны все пять вместе с перемещающими — потому что он владеет ресурсом. Компилятор генерирует их неявно, но объявление любого из них подавляет часть остальных: написали деструктор — перемещающие операции больше не генерируются, и их место молча занимают копирования. Правило нуля ещё лучше: владейте ресурсами через члены, которые уже управляют собой сами.