uz
Feedback
Библиотека C/C++ разработчика

Библиотека C/C++ разработчика

Kanalga Telegram’da o‘tish

Полезные материалы по всему, что может быть полезно плюсовику/сишнику. По всем вопросам @evgenycarter

Ko'proq ko'rsatish
7 224
Obunachilar
-524 soatlar
-217 kunlar
-4430 kunlar
Postlar arxiv
🎯 В C++ вызываемый объект — это намного больше, чем “функция”. За тридцать лет язык прошёл путь от простых указателей до мощ
🎯 В C++ вызываемый объект — это намного больше, чем “функция”. За тридцать лет язык прошёл путь от простых указателей до мощных лямбда-выражений, которые лежат в основе современного параллелизма, асинхронности, алгоритмов и гибких архитектур. На открытом уроке 18 декабря в 20:00 мск вы увидите эволюцию callable-подходов во всей широте: от function pointers и функторов до std::bind, std::function и современных лямбд. Разберёмся, что происходит «под капотом», как выбирать подходящий инструмент и почему именно лямбды стали стандартом промышленного C++. Такой разбор особенно полезен тем, кто хочет писать более выразимый, модульный и безопасный код. Понимание callable-моделей даёт гибкость: проще проектировать API, реализовывать callback-механику, строить асинхронность, оптимизировать архитектуру приложения и мыслить “по-современному”. ⚡️Присоединяйтесь к открытому уроку в преддверие старта курса «C++ Developer» — получите базу, на которой строятся потоки исполнения, асинхронные модели и ключевые элементы современного C++20/23: https://vk.cc/cSn7e8 Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Как написать 2D игру на C++ и чистом STL для терминала в Linux Я PHP разработчик с опытом работы в продакшне более 8 лет. После долгого и упорного труда мне стало скучно пилить микросервисы и бэкенды в хайлоде, я решил постичь магию разработки игр. Выбрал курс по Unreal Engine 5 и C++, так как там все структурировано, понятно, и в случае необходимости есть кому задать вопрос. На первой лекции по основам С++ преподаватель сразу предложил челлендж - написать 2D игру без использования игрового движка. Идея мне понравилась и я сразу приступил к реализации. https://habr.com/ru/post/708486/ 📲 Мы в MAX #cpp #programming 👉 @cpp_lib

Три теоремы о сортировках Я знаю многих программистов и руководителей в IT компаниях, которые недолюбливают математиков и в ч
Три теоремы о сортировках Я знаю многих программистов и руководителей в IT компаниях, которые недолюбливают математиков и в частности считают их далёкими от жизни идиотами из-за их утверждений в духе "нельзя отсортировать последовательность быстрее, чем за nlogn" -- ведь это очевидным образом неверно, есть же сортировка подсчетом и radix sort. Нюанс в том, что описанное выше -- это распространённая некорректная трактовка одной из ключевых теорем об алгоритмах сортировок, корректное утверждение выглядит так: "не существует алгоритма, который бы гарантированно находил перестановку n элементов, приводящую к возрастающему порядку, быстрее чем за nlogn используя только операции попарного сравнения". В этом утверждении больше слов, оно более сложно в плане когнитивного восприятия, ключевой момент обозначил жирным шрифтом, чувствуете разницу? https://habr.com/ru/hubs/cpp/articles/ 📲 Мы в MAX #cpp #programming 👉 @cpp_lib

+7
Лекции С++ продвинутый поток ФПМИ 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 С++ для практикующих разработчиков и энтузиастов языка Участников ждет разг
15 декабря в Москве и онлайн пройдёт встреча РГ21 С++ для практикующих разработчиков и энтузиастов языка Участников ждет разговор о будущем С++, свежие новости и ответы на вопросы о стандартизации языка. В программе: 🔸 Новости со встречи международного Комитета по стандартизации языка C++. Антон Полухин, руководитель группы разработки общих компонентов в Техплатформе Городских сервисов Яндекса, разберёт прогресс в работе над С++26 с рефлексией, расскажет про контракты и комментарии к стандарту от России. 🔸 Ответы на вопросы о практическом участии в разработке. Обсудим, как российским разработчикам можно напрямую участвовать в развитии стандарта языка. 🔸 Неформальный нетворкинг. После основной программы обмениваемся мнениями и общаемся с коллегами. Регистрация на встречу уже открыта.

+9
Метапрограммирование 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++ всегда была испытанием на зрелость. Потоки, мьютексы, коллбеки — и тысячи строк кода, чтобы просто дождаться результата. Но в C++20 всё изменилось: корутины убирают боль ручного управления потоками. На открытом уроке разберём, как работает новая модель асинхронности в C++: без громоздких конструкций и перегрузок по CPU. Вы поймёте, как устроены корутины, где их применять и почему они стали стандартом в C++20 и C++23. На практике создадим корутины-генераторы и обсудим их преимущества перед классическими потоками. Если вы уже чувствуете, что ваш C++ проект тонет в callback hell или не масштабируется под нагрузкой — этот вебинар поможет понять, как писать современный, чистый и асинхронный код. 🔥11 декабря в 20:00 МСК. Открытый урок проходит в преддверии старта курса «C++ Developer. Professional». Присоединяйтесь и узнайте, как сделать асинхронность естественной частью вашего кода: https://vk.cc/cS9XVO Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

+9
Базовый курс 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

+9
Метапрограммирование 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++. Даже опытные инженеры порой тратят часы на поиск невидимых дефектов, которые ломают логику программы. Но есть инструменты, которые позволяют ловить такие баги ещё до того, как они попадут в прод. На открытом уроке 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

Плывущий экран. Вирус на C++. Melting Screen Программа предоставлена в образовательных целях! Автор не несёт ответственности за её использование! В этом видео вы узнаете как написать вирус на с++ который заставляет экран сыпаться и плыть. источник 📲 Мы в MAX #cpp #programming 👉 @cpp_lib

🔥OS DevConf 25 powered by GigaChat — конференция про разработку системного ПО, ядра Linux и open source. Один день, 500 учас
🔥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 ❤️ Приглашённые эксперты и
Все секреты и лайфхаки по работе со строками — на втором вебинаре по оптимизации игр от 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 Прежде чем рассказать про архитектуры игровых движков, я подумал, что будет полезно немного рассказать
Game++. Building arcs Прежде чем рассказать про архитектуры игровых движков, я подумал, что будет полезно немного рассказать о том, как я понимаю архитектуру ПО и как это связано с играми. Во-первых они (архитектуры) есть, чтобы бы там не врали про игрострой. Во-вторых их оказывается больше одной. Это, возможно, поможет вам понять, почему остальные статьи написаны в таком порядке, или без какого-то порядка. В худшем случае, когда вас втянут в спор о том, насколько отвратительны (или, наоборот, потрясающе гениальны) отдельные игровые движки и их архитектуры, у вас будет пара аргументов и понимание что к чему. Символично, что статья про архитектуру игрового движка появилась после того, как было рассказано про строки, мультипоток, применение алгоритмов: просто оно так и в жизни получается, мы сначала пишем код, редактор, игру - костяк проекта обрастает мясом, и тут нас догоняют проблемы, на которые все забивали, потому что надо было выдать хоть что-то похожее на работающий вариант. Но от того, что мы забивали на проблемы и заметали их под коврик беклога, проблемами быть они не перестали. Вы не получите из статьи знаний об аллокаторах, контейнерах, или математике, стоящей за физикой игры. Так же я не ставлю целью научить вас, как применять A* разбиение в поиске пути неписей или моделировать реверберацию комнаты. Вместо этого есть размышления о коде между всем этим. И даже не столько про написание кода, сколько о его организации. https://habr.com/ru/articles/885780/ 📲 Мы в MAX #cpp #programming 👉 @cpp_lib

Botan — это мощная криптографическая библиотека на C++, поддерживающая широкий спектр алгоритмов и предназначенная для исполь
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,
+1
🚀Это отличный ресурс для программистов, работающих с 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