Библиотека C/C++ разработчика | cpp, boost, qt

@cppproglib
🔧 Guidelines Support Library: как Microsoft проверяет параметры GSL — это не просто модная библиотека. Это набор практик от создателей C++, упакованный в код😎 #include <gsl/gsl> // ❌ Традиционная проверка void setAge(Person& p, int age) { if (age < 0 || age > 150) { throw std::invalid_argument("Invalid age"); } p.age = age; } // ✅ GSL: семантика ясна из кода void setAge(Person& p, int age) { Expects(age >= 0 && age <= 150); // Precondition p.age = age; Ensures(p.age == age); // Postcondition } ❗️Что даёт GSL: • Expects() — preconditions (проверка входа) • Ensures() — postconditions (проверка выхода) • gsl::not_null<T*> — указатель, который не может быть null void process(gsl::not_null<int*> data) { // Компилятор гарантирует: data != nullptr *data = 42; // Безопасно без if } ‼️ В debug режиме — runtime проверки, в release — могут быть отключены. 👉 Библиотека
Если у вас установлено приложение,
вы можете сразу перейти в канал