❤11👍5🔥4
Ребята сделали крутейший канал про айти
Здесь сложные темы объясняют на простых картинках и понятном языке, а еще делятся полезными ресурсами и свежими новостями из мира IT
Подписывайтесь: @IT_Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍6❤4🤝1
Как запретить опасное копирование ещё на этапе компиляции?
Класс часто владеет ресурсом: файл, сокет, мьютекс.
Если такой объект случайно скопировать, ресурс могут закрыть дважды или использовать после освобождения — ловим странные баги.
В современном C++ не нужно придумывать трюки с приватными конструкторами.
Достаточно явно запретить операции через
Теперь любой код, который останавливается ещё на стадии сборки, например:
Тем же приёмом можно отключать нежелательные перегрузки функций:
🔥 Итог:
«эту операцию делать нельзя», и превратить потенциальный рантайм-баг в понятную ошибку компиляции.
📣 C++ Ready | #совет
Класс часто владеет ресурсом: файл, сокет, мьютекс.
Если такой объект случайно скопировать, ресурс могут закрыть дважды или использовать после освобождения — ловим странные баги.
В современном 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 — простой способ сказать компилятору«эту операцию делать нельзя», и превратить потенциальный рантайм-баг в понятную ошибку компиляции.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15🔥7🤝6👍1
Программисты, это вам 👇
Держите 5 каналов, которые реально помогают изучать программирование и IT с полного нуля:
🖥 Easy Coder — все направления IT.
👩💻 Easy Python — всё о Python.
🌐 Easy WebDev — Frontend, Backend.
🔠 Easy InfoSec — ИБ, Хакинг.
🐱 Easy GitHub — лучшее с GitHub.
Тонны полезной инфы для любого уровня подготовки✔️
Держите 5 каналов, которые реально помогают изучать программирование и IT с полного нуля:
🌐 Easy WebDev — Frontend, Backend.
Тонны полезной инфы для любого уровня подготовки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1🔥1
Запускаем несколько рабочих потоков заранее, кладём задачи в общую очередь — потоки по сигналу забирают и выполняют их, без создания новых
std::thread на каждую задачу.В этой задаче:
• Почувствуешь разницу между хаотичным запуском задач и порядком;
• Увидишь, как несколько потоков спокойно делят очередь;
• Замечаешь, как код берёт рутину выбора на себя.
Покажет использование в
main и почему порядок вывода «плавает». Добавление std::future сделает пул ещё удобнее.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍6❤4