Зачем писать на C++ в 2022 году?
Основы языка C++ были заложены более 40 лет назад, но он по-прежнему повсеместен. В этой статье мы с вами разберемся, где и почему он используется, и порассуждаем, есть ли у него будущее. Разобраться
Пользовательские типы и std::format в C++20
Расскажем, как реализовать пользовательские средства форматирования (форматтеры) в соответствии с новой std::format
архитектурой. Читать
Эволюция лямбд в C++14, C++17 и C ++20
Лямбда-выражения — одна из самых популярных фич современного C++. С тех пор, как они были представлены в C++11, лямбды проникли практически в каждую кодовую базу на C++. В этой статье расскажем об основных эволюционных этапах в истории лямбда-выражений, опустив некоторые мелкие детали. Читать
Упрощаем код с помощью if constexpr и концептов C++17/C++20
До C++17 у нас было несколько довольно неэлегантных способов написать static if
(if, который работает во время компиляции). Например, мы можем использовать статическую диспетчеризацию или SFINAE. К счастью, ситуация изменилась к лучшему, ведь теперь мы можем воспользоваться для этого if constexpr
и концептами C++20! Подробнее
C++20: корутины cppcoro
Библиотека cppcoro от Льюиса Бейкера (Lewis Baker) дает нам то, чего не дает нам C++20 — библиотеку абстракций корутин C++, основанную на Coroutines TS. Читать далее
C++20: пулы потоков в cppcoro
В этой статье автор покажет пулы потоков (thread pools). Читать
Константные ссылки — не всегда ваши друзья
Я обнаружил, что люди склонны перебарщивать с константными ссылками, считая, что они являются лучшим выбором в любой ситуации и должны использоваться везде, где они могут быть использованы.
Но так ли это? А что насчет альтернатив? И какие подводные камни могут нас поджидать, когда мы используем константные ссылки? Узнать
Шаблоны C++: как итерировать по std::tuple — std::apply и еще пара приемов
В этой статье рассмотрим две техники, первая — с применением std::apply
из C++17, вспомогательной функции для кортежей. В этой статье также будут рассмотрены некоторые стратегии, позволяющие сделать итерацию более универсальной и обрабатывать кастомные callable-объекты, а не только выводить их в консоль. Читать