Библиотека C/C++ разработчика | cpp, boost, qt
19.8K subscribers
1.9K photos
56 videos
16 files
4.12K links
Все самое полезное для плюсовика и сишника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/d6cd2932

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
Download Telegram
🐸 Подборка вакансий для C++-разработчиков за неделю

C developer — Удалёнка

Middle+ / Senior C++ developer — Удалёнка

Senior разработчик C++ в команду Core — Удалёнка

Middle Разработчик на C/C++ под Linux — от 250 000 и до 300 000 ₽ Удалёнка

Библиотека C/C++ разработчика
👍2
🍴 Assert vs If: когда проверки только вредят

Часто в коде встречаются избыточные проверки, которые защищают от "невозможных" ситуаций:

void process(Config* config) {
if (config == nullptr) { // хотя config всегда валиден!
log_error("Config is null");
return;
}
// ...
}


❗️Проблема: такие if загромождают код, снижают производительность и создают иллюзию безопасности.

Решение: использовать assert для проверки инвариантов — условий, которые всегда должны выполняться в корректной программе:

void process(Config* config) {
assert(config != nullptr && "Config cannot be null");
// ...
}


💡 Почему это лучше:

• В релизе (NDEBUG) код assert полностью удаляется — нет накладных расходов
• В горячих циклах это может означать миллионы сэкономленных проверок
• Меньше размер исполняемого файла
• assert явно документирует предусловия функции
• Баг обнаруживается сразу в Debug, а не прячется за логами


👉 Статья


Библиотека C/C++ разработчика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🤔2🥱1👾1