Библиотека C/C++ разработчика
Ir al canal en Telegram
Полезные материалы по всему, что может быть полезно плюсовику/сишнику. По всем вопросам @evgenycarter
Mostrar más7 325
Suscriptores
+524 horas
+67 días
+1230 días
Archivo de publicaciones
Лекции С++ продвинутый поток ФПМИ 2023-24
Лекция 1. Введение в язык C++. Основные типы и операции над ними
Лекция 2. Основные команды в терминале. Компиляция программ
Лекция 3. Объявления и определения, области видимости, пространства имен
Лекция 4. Выражения и операторы. Управляющие конструкции
Лекция 5. Compile-time errors, runtime errors, undefined behavior
Лекция 6. Указатели
Лекция 7. Стековая, статическая и динамическая память
Лекция 8. Массивы, функции и указатели на функции
источник
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
15 декабря в Москве и онлайн пройдёт встреча РГ21 С++ для практикующих разработчиков и энтузиастов языка
Участников ждет разговор о будущем С++, свежие новости и ответы на вопросы о стандартизации языка.
В программе:
🔸 Новости со встречи международного Комитета по стандартизации языка C++. Антон Полухин, руководитель группы разработки общих компонентов в Техплатформе Городских сервисов Яндекса, разберёт прогресс в работе над С++26 с рефлексией, расскажет про контракты и комментарии к стандарту от России.
🔸 Ответы на вопросы о практическом участии в разработке. Обсудим, как российским разработчикам можно напрямую участвовать в развитии стандарта языка.
🔸 Неформальный нетворкинг. После основной программы обмениваемся мнениями и общаемся с коллегами.
Регистрация на встречу уже открыта.
Метапрограммирование
1. Введение в шаблоны
2. C++20: requires keyword
3. C++20: concepts
4. Operator spaceship
5. ADL и CRTP
6 (семинар). Typelist
7. Traits, Policy Based Design, Mixins
8. Полиморфизм
9 (семинар). Реализация std::function
10 (семинар). Реализация std::any без виртуальных функций
источник
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
🧑🏻💻Асинхронность в C++ всегда была испытанием на зрелость. Потоки, мьютексы, коллбеки — и тысячи строк кода, чтобы просто дождаться результата. Но в C++20 всё изменилось: корутины убирают боль ручного управления потоками.
На открытом уроке разберём, как работает новая модель асинхронности в C++: без громоздких конструкций и перегрузок по CPU. Вы поймёте, как устроены корутины, где их применять и почему они стали стандартом в C++20 и C++23. На практике создадим корутины-генераторы и обсудим их преимущества перед классическими потоками.
Если вы уже чувствуете, что ваш C++ проект тонет в callback hell или не масштабируется под нагрузкой — этот вебинар поможет понять, как писать современный, чистый и асинхронный код.
🔥11 декабря в 20:00 МСК. Открытый урок проходит в преддверии старта курса «C++ Developer. Professional». Присоединяйтесь и узнайте, как сделать асинхронность естественной частью вашего кода: https://vk.cc/cS9XVO
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Базовый курс C++ (MIPT, ILab)
Lecture 1. Scent of C++.
Lecture 2. Указатели и ссылки
Lecture 3. Имена и сущности
Lecture 4. Инициализация и копирование.
Lecture 5. RAII и перемещение
Lecture 6. Приведение типов
Lecture 7. Перегрузка операторов
Lecture 8. Наследование и полиморфизм
Lecture 9. Множественное наследование
Lecture 10. Языки и грамматики
источник
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
Метапрограммирование
1. Введение в шаблоны
2. C++20: requires keyword
3. C++20: concepts
4. Operator spaceship
5. ADL и CRTP
6 (семинар). Typelist
7. Traits, Policy Based Design, Mixins
8. Полиморфизм
9 (семинар). Реализация std::function
10 (семинар). Реализация std::any без виртуальных функций
источник
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
👨💻Ошибки в памяти, утечки, неопределённое поведение — всё это неизбежная часть разработки на C++. Даже опытные инженеры порой тратят часы на поиск невидимых дефектов, которые ломают логику программы. Но есть инструменты, которые позволяют ловить такие баги ещё до того, как они попадут в прод.
На открытом уроке 9 декабря в 20:00 мск мы подробно разберём санитайзеры — инструменты, которые показывают, где и почему программа ведёт себя неправильно. Вы поймёте, как использовать их в реальных проектах, какие типы ошибок они находят и где проходят границы применимости.
Это полезно всем, кто пишет на C++. Санитайзеры — минимальный набор безопасности, который помогает не только отлавливать критические ошибки, но и формировать инженерную культуру «чистого» кода. Вы увидите, как всего одно включение инструмента даёт прозрачность, на которую обычно уходят недели отладки.
🚀Присоединяйтесь к открытому уроку в преддверие старта курса «C++ Developer»: https://vk.cc/cRZJeG
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Улучшенные версии STL-контейнеров из библиотеки Boost
Илья Мещерин
В любом учебном курсе по C++, даже начального уровня, обязательно изучают, как устроен
std::vector. Детали внутреннего устройства std::vector в подробностях продолжают изучать в вузах, спрашивать на собеседованиях, обсуждать на конференциях. То же самое происходит с контейнерами std::list, std::deque, std::map и std::unordered_map: про их реализацию и особенности внутреннего устройства можно говорить бесконечно долго, про них все еще делают доклады, снимают лекции и пишут статьи. И их продолжают использовать в продакшен-коде даже в самых крупных и известных компаниях.
При этом в библиотеке Boost давным-давно есть альтернативные версии контейнеров, которые выигрывают у стандартных по многим показателям. Однако об этих версиях почти никто не знает, о них почти нет лекций, статей и докладов. Пора положить этому конец и разобраться в том, как еще могут быть устроены контейнеры, помимо тех версий из STL, о которых и так все знают.
Спикер обсудил внутреннее устройство не таких уж стандартных контейнеров: stable_vector, devector, bimap, circular_buffer, а также интрузивных версий list, map, unordered_map и их разновидностей.
источник
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib🔥OS DevConf 25 powered by GigaChat — конференция про разработку системного ПО, ядра Linux и open source.
Один день, 500 участников, 30+ докладов, 3 трека — концентрат практического опыта, знаний и инструментов, готовых к внедрению сразу по возвращению в офис. И, конечно, мега-возможности для нетворкинга с коллегами и экспертами сообщества!
Что будем обсуждать?
-Инструменты и примеры отладки, виртуализации, оптимизации производительности
-Практический опыт оптимизации сетевых решений с DPDK
-Эффективные методы безопасной разработки ядра Linux
-Реальные кейсы создания драйверов на Rust
-Все про GPU, NPU, ASIC и как запускать AI на железе под Linux и не только. Как AI встраивается в современную разработку
-Современные подходы к разработке системного и embedded ПО
Участие бесплатное, но количество мест ограничено — зарегистрируйтесь прямо сейчас 💻
#реклама
О рекламодателе
Алгоритмы манипуляций с битами
В статье приведены алгоритмы обработки коротких битовых строк, обычно вмещающихся в машинное слово, в большей степени эти алгоритмы предназначены для обработки строк длины 32 или 64, но многие из них можно применять для SIMD инструкций или даже GPU.
https://habr.com/ru/articles/886182/
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
Все секреты и лайфхаки по работе со строками — на втором вебинаре по оптимизации игр от PVS-Studio ❤️
Приглашённые эксперты из gamedev-индустрии поделятся удачными (и не очень) историями развития собственных решений.
А ещё:
🔵 расскажут о пулах строк и способах экономии памяти;
🔵 разберут, как ускорить поиск подстроки в строке и почему одна реализация может быть быстрее другой.
Вас ждут доклады:
🔵 «String interning и все, все, все» от Сергея Кушниренко, Senior Software Engineer в команде Age of Empires 2 (студия Forgotten Empires);
🔵 «Векторизованный поиск подстроки в строке» от Дениса Ярошевского, Performance engineer, условно активный член C++ сообщества, один из разработчиков библиотеки для векторизации EVE;
🔵 «std::string – путешествие туда и обратно» от Андрея Карпова, сооснователя PVS-Studio и автора Telegram-канала «Бестиарий программирования».
🗓 4 декабря, 15:00
Присоединяйтесь по ССЫЛКЕ.
Game++. Building arcs
Прежде чем рассказать про архитектуры игровых движков, я подумал, что будет полезно немного рассказать о том, как я понимаю архитектуру ПО и как это связано с играми. Во-первых они (архитектуры) есть, чтобы бы там не врали про игрострой. Во-вторых их оказывается больше одной. Это, возможно, поможет вам понять, почему остальные статьи написаны в таком порядке, или без какого-то порядка. В худшем случае, когда вас втянут в спор о том, насколько отвратительны (или, наоборот, потрясающе гениальны) отдельные игровые движки и их архитектуры, у вас будет пара аргументов и понимание что к чему.
Символично, что статья про архитектуру игрового движка появилась после того, как было рассказано про строки, мультипоток, применение алгоритмов: просто оно так и в жизни получается, мы сначала пишем код, редактор, игру - костяк проекта обрастает мясом, и тут нас догоняют проблемы, на которые все забивали, потому что надо было выдать хоть что-то похожее на работающий вариант. Но от того, что мы забивали на проблемы и заметали их под коврик беклога, проблемами быть они не перестали.
Вы не получите из статьи знаний об аллокаторах, контейнерах, или математике, стоящей за физикой игры. Так же я не ставлю целью научить вас, как применять A* разбиение в поиске пути неписей или моделировать реверберацию комнаты. Вместо этого есть размышления о коде между всем этим. И даже не столько про написание кода, сколько о его организации.
https://habr.com/ru/articles/885780/
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
Botan — это мощная криптографическая библиотека на C++, поддерживающая широкий спектр алгоритмов и предназначенная для использования в различных проектах. Она отличается модульной архитектурой, хорошей производительностью и кроссплатформенностью.
Основные возможности:
🔹 Поддержка симметричных и асимметричных алгоритмов шифрования
🔹 Генерация и управление ключами
🔹 Хеш-функции и HMAC
🔹 Поддержка TLS и сертификатов X.509
🔹 Стандартизованные и экспериментальные криптографические примитивы
Библиотека активно развивается и используется в различных областях, включая безопасность сетевых соединений, шифрование данных и аутентификацию.
https://github.com/randombit/botan
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
📌 Многие разработчики уверены, что проблема в алгоритме. Но на практике код «тормозит» чаще из-за того, как он работает с памятью.
На открытом уроке 25 ноября в 19:00 мы разберём, почему два одинаковых на вид фрагмента кода в C++ могут показывать кардинально разную производительность. Поговорим о том, как устроены уровни памяти, какие паттерны доступа ускоряют программу в разы и как формируется та самая «интуиция» эффективного инженера.
Вы увидите на практических примерах, как принципы оптимизации, привычные для работы с HDD, прекрасно масштабируются до SSD и оперативной памяти. Это знания, которые повышают ценность любого C++ разработчика — от начинающего до уверенного middle.
⚡️Оставьте заявку и присоединяйтесь к открытому уроку в преддверие старта курса «C++ Developer»: https://vk.cc/cRBJld
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
С++ и безопасность: правда ли все так плохо?
Сергей проанализировал недавний отчет NSA и рассказал, так ли плохо обстоят дела с безопасностью в С++ на самом деле и что современная индустрия предлагает для решения этого вопроса.
Он разобрал проблемы с безопасностью в С++ на открытых примерах из Chromium, среди которых:
— работа с памятью;
— UB;
— C legacy, строки, арифметика, преобразования типов.
Спикер также показал различные подходы к митигации описанных проблем, в частности:
— статический анализ;
— динамический анализ;
— фаззинг-тестирование;
— харденинг;
— выделение безопасных подмножеств языка: Misra, AUTOSAR, стандарт Google;
— методология SDL как комплексное решение;
— (бонус) подход KasperskyOS по определению недоверенных компонентов, допускающих наличие уязвимостей, но без возможности их проэксплуатировать и развить атаку.
источник
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
🚀Это отличный ресурс для программистов, работающих с C++. Можно найти подробную документацию по стандартной библиотеке, STL, различным версиям стандарта C++, а также примеры кода и объяснения по ключевым аспектам языка.
Справочник по C++
C++11, C++14, C++17, C++20, C++23, C++26 │ Поддержка компиляторами C++11, C++14, C++17, C++20, C++23, C++26
Справочник по языку C
C89, C95, C99, C11, C17, C23 │ Поддержка компиляторами C99, C23
https://ru.cppreference.com/w/
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
⚡️C++ давно вышел за рамки системного программирования — сегодня на нём создают визуальные приложения, графику и полноценные пользовательские интерфейсы. Если вы когда-нибудь задумывались, как работают кнопки, чекбоксы и окна — этот урок для вас.
На открытом вебинаре разберём, как создавать собственные элементы интерфейса на чистом C++ — без громоздких фреймворков и магии “за кулисами”. Вы научитесь обрабатывать события мыши и клавиатуры, отрисовывать элементы, управлять объектами и проектировать реакцию интерфейса на действия пользователя.
Урок будет полезен тем, кто хочет глубже понять, как работает графика “под капотом”, и добавить в свои проекты реальный интерактив. Вы получите понимание принципов низкоуровневого UI, навыки работы с графикой и возможность создавать собственные визуальные приложения.
👉27 ноября в 20:00 МСК. Открытый вебинар проходит в преддверии старта курса «C++ Developer. Professional». Регистрация открыта: https://vk.cc/cRv0L4
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Сборка C++ проектов. Пакетный менеджер CONAN. Game Engine серии
0:00:00 - Введение
0:02:43 - Conan. Теория
0:07:31 - Conan. Установка
0:10:44 - Conan. Базовая настройка
0:17:04 - ConanCenter. JSON
0:34:46 - GTest
0:54:43 - Chuck Norris API, cpr
1:15:19 - Автоматизация сборок
источник
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
Создаем эмулятор Sega Mega Drive на C++
В этой статье описано создание эмулятора 16-битной приставки Sega Mega Drive на C++.
Будет много интересного: эмуляция процессора Motorola 68000, реверсинг игр, графика на OpenGL, шейдеры, и многое другое. И все это на современном C++. В статье много картинок, можно хоть на них посмотреть.
https://habr.com/ru/articles/871284/
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
