Содержимое
Как запретить опасное копирование ещё на этапе компиляции? Класс часто владеет ресурсом: файл, сокет, мьютекс. Если такой объект случайно скопировать, ресурс могут закрыть дважды или использовать после освобождения — ловим странные баги. В современном C++ не нужно придумывать трюки с приватными конструкторами. Достаточно явно запретить операции через = delete: struct File { File(const std::string& path); File(const File&) = delete; File& operator=(const File&) = delete; }; Теперь любой код, который останавливается ещё на стадии сборки, например: File a{"data.txt"}; File b = a; // ❌ не скомпилируется Тем же приёмом можно отключать нежелательные перегрузки функций: void print(double); void print(int) = delete; // запретить неявное приведение int → double ➡️Итог: = delete — простой способ сказать компилятору «эту операцию делать нельзя», и превратить потенциальный рантайм-баг в понятную ошибку компиляции. @fsprussia #ФСП#СпортивноеПрограммирование