Рубрика «C++20»

Небольшая предыстория

Несколько лет назад был реализован компонент выгрузки данных во внутренний бэкэнд компании. В какой‑то момент, как это часто бывает, пришлось временно переключиться на помощь другой команде и в авральном режиме закрывать проект. В результате задачи по развитию приложения, включая переход на новый бэкэнд, были мной отложены.

Через пару месяцев я вернулся к этой части системы и обнаружил, что вместо адаптации существующего решения появился классический Ctrl+C → Ctrl+V. В качестве сообщений использовался огромный std::variant, который передавался между потоками через Читать полностью »

Привет!

В этой статье я расскажу об эволюции моего проекта — GroupModerBot, бота для модерации Telegram‑групп. Я покажу, как проект прошел путь от первой версии «всё в одном файле» до продуманной архитектуры с ООП, in‑memory кэшированием, безопасным выполнением команд и нестандартными алгоритмами наказаний пользователей.

Предыстория

Читать полностью »

userver 3.0 — большой релиз фреймворка для IO‑bound‑программ, переход на C++20 - 1

Привет! На связи Антон Полухин из Техплатформы Городских сервисов Яндекса. После большого релиза 🐙 userverЧитать полностью »

Обзор вайб-кода

Обзор вайб-кода

Читать полностью »

Привет! Меня зовут Aloncie. Пока в моем окружении часто спорят о том, какой язык программирования учить первым, я решил не выбирать легких путей и закопаться в «кишки» системного программирования.

Мой проект Rwal — это CLI-утилита (с перспективой перехода на GUI) для управления обоями, которая должна одинаково хорошо чувствовать себя в разных окружениях: от KDE и GNOME до Windows. В этой статье я подробно разберу архитектуру проекта, работу с D-Bus, интеграцию со стандартами C++20 и то, как я организовал сборку.

Архитектура: Абстракция над рабочим столом

Читать полностью »

Компилятор C в compile-time - 1

Если кратко, то цель: компилятор некоторого подмножества языка Си на C++, который работает в compile-time. Компиляция будет происходить в кастомный байт-код для дальнейшего выполнения в ВМ уже в рантайме.

Читать полностью »

Всё началось с того, что я захотел добавить поддержку сети в свой очередной новоиспечённый игровой движок №42. Вот есть такая мания: писать игровой движок, не сделать ни одной игры, но начать делать новый, потому что понял, что архитектура тебе не нравится.

А в новом движке нужно обязательно сделать сеть, а чтобы вообще круто было - нужно сделать её сделать на основе корутин из C++ 20.

Читать полностью »

В ретроспективе 1991 года по истории C++ его создатель Бьярне Страуструп назвал отсутствие стандартного строкового типа (и некоторых других стандартных типов) в C++ 1.0 худшей ошибкой, которую он допустил при его разработке:

“the absence of those led to everybody re‑inventing the wheel and to an unnecessary diversity in the most fundamental classes”

(«Их отсутствие привело к тому, что все заново изобретали велосипед, и к ненужному разнообразию в самых фундаментальных классах»).

Читать полностью »

Воу-воу, Джонни, убери пушку! Я могу всё объяснить! В предыдущей статье про std::array мы подробно рассматривали, почему в production-ready коде он ведёт себя так же производительно, как и встроенный массив, а не медленнее, как иногда думают некоторые люди.

После написания такой статьи невольно появляется вопрос: а может ли наш добродушный сосед std::array быть даже быстрее своего дедушки времён C? Согласитесь, иногда приятно предаться вольнодумству и посмотреть, куда тебя это заведёт. Давайте сделаем это! Чем мы, в конце концов, рискуем? Не рейдом же плюсовой инквизиции!

Читать полностью »

Вторая часть истории о том, как C и C++ стали такими, какими мы их знаем сегодня. Здесь расскажем об официальной сертификации C и C++, а также о вышедших инструментах в период с 1991 года и до наших дней.

История C и C++. Часть вторая: стандартизация C и C++, Qt, Clang, Unreal Engine - 1

1994 — Разработка языка с видом от первого лица

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js