Введение Статья 541 показала static_assert как раннюю технику ограничения допустимых типов шаблона — C++20 представил concepts, значительно более выразительный, явный и интегрированный в систему типов механизм для той…
Введение В завершение блока про шаблоны и современный C++ разберём ряд практичных синтаксических удобств, появившихся в C++17/20, делающих повседневный код заметно компактнее и выразительнее: структурированные привязки, if/switch с…
Введение Весь предыдущий цикл неоднократно отмечал, что та или иная возможность появилась «начиная с C++11» или «C++17» — в этой статье систематизируем эволюцию стандартов C++ от исходного C++98…
Введение Статьи 524, 532 и 547 неоднократно демонстрировали элементы RAII на конкретных примерах (умные указатели, классы-обёртки ресурсов) — в этой статье разберём RAII (Resource Acquisition Is Initialization) как…
Введение Статьи 532 (конструкторы/деструкторы) и 546 (move-семантика) разбирали отдельные специальные методы класса — правило пяти систематизирует, какие именно специальные методы нужно рассматривать совместно при проектировании класса, управляющего ресурсом…
Введение Статья 549 представила concepts как современный, явный механизм ограничения шаблонов — SFINAE (Substitution Failure Is Not An Error) — более ранняя, гораздо менее интуитивная техника, решавшая похожие…
Введение Термин «неопределённое поведение» неоднократно встречался в этом цикле (выход за границы массива статья 518/519, переполнение знакового типа статья 512, разыменование нулевого указателя статья 519) — в этой…
Введение Предыдущие статьи цикла неоднократно использовали static_cast без подробного объяснения, и кратко упоминали const_cast (статья 530) — в этой статье систематизируем все четыре основных современных оператора приведения типов…
Введение Современный C++ (начиная с C++11, с расширениями в последующих стандартах) предоставляет унифицированный синтаксис атрибутов ([[имя_атрибута]]), дающих компилятору дополнительные подсказки о намерениях разработчика — в этой статье разберём…
Введение Цикл неоднократно использовал отдельные элементы стандартной библиотеки (std::vector статья 518/542, std::map статья 458/523, std::sort статья 461 алгоритмического цикла) — в этой статье дадим систематический, обзорный взгляд на…
Нравится qthelper.ru? 💚
Сайт живёт без пейволов и обязательной подписки. Если статьи помогают вам в работе — поддержите проект.