Библиотека C/C++ разработчика
前往频道在 Telegram
Полезные материалы по всему, что может быть полезно плюсовику/сишнику. По всем вопросам @evgenycarter
显示更多7 199
订阅者
+124 小时
无数据7 天
-2930 天
帖子存档
Ловим утечки памяти в С/С++
Сегодня я хочу немного приоткрыть свет над тем, как бороться с утечкой памяти в Си или С++.
На Хабре уже существует две статьи, а именно: Боремся с утечками памяти (C++ CRT) и Утечки памяти в С++: Visual Leak Detector. Однако я считаю, что они недостаточно раскрыты, или данные способы могут не дать нужного вам результата, поэтому я хотел бы по возможности разобрать всем доступные способы, дабы облегчить вам жизнь.
https://habr.com/ru/articles/480368/
#cpp #programming
👉 @cpp_lib
Работа со строками в Embedded C++
В этом посте под словом Embedded я обычно подразумеваю глубоко встраиваемые/бесплатные системы, а не встраиваемые системы на базе Linux.
https://blog.feabhas.com/2022/02/working-with-strings-in-embedded-c/
#cpp #programming
👉 @cpp_lib
❓Когда уместно использовать ООП, а когда — ФП? Функциональный стиль программирования поддерживается и даже поощряется во всех мейнстримовых языках. Но всегда ли он уместен, и есть ли объективные критерии выбора между ООП и ФП?
💥Узнайте практические возможности этих парадигм на открытом уроке 14 апреля в 20:00 мск в OTUS. Вебинар приурочен к старту онлайн-курса «Computer Science».
🔥На вебинаре вспомните не только историю языков, но и сравните анемичные и богатые модели, разберете, для каких случаев подходит та или иная парадигма.
👨🎓Урок, как и сам курс, ориентирован на начинающих в IT, выпускников технических специальностей, либо специалистов, которые имеют практический опыт работы с каким-либо языком программирования.
🚀Больше навыков в Computer Science вы сможете освоить на курсе, доступном в рассрочку.
👉Регистрация на урок https://otus.pw/nGRa/
Реклама. Информация о рекламодателе на сайте otus.ru
Корутины в UnrealEngine
На дворе уже 2023 год, а значит пора использовать новшества C++20 и в геймдеве по полной.
В этой статье я расскажу, как можно улучшить читаемость асинхронного кода и сократить немалое, на мой взгляд, количество писанины. И это благодаря такой возможности стандарта уже минувшего года, как сопрограммы. На Хабре опубликовано некоторое количество статей об этой интересной языковой технологии, но я хочу показать практическое применение в проектах UnrealEngine, а так же приоткрыть завесу сопрограмм для тех, кто ещё не в курсе.
Статья ориентирована на любознательных разработчиков гейм индустрии, работающих в UnrealEngine. Не важно, имели ли вы какой-либо опыт с сопрограммами ранее. Я хочу показать как с этим работать в этом прекрасном игровом движке, ведь в том же Unity давно существует подобное и является довольно ходовым инструментом.
https://habr.com/ru/articles/720868/
#cpp #programming
👉 @cpp_lib
❓ Какие нюансы в С++ программировании важно знать мидлу?
📢📢 Рассмотрим один из таких нюансов 13 апреля в 20:00 на вебинаре «Исключения и “не исключения” в С++».
Открытой урок состоится в рамках онлайн-курса «C++ Developer. Professional» в OTUS.
На вебинаре вы получите ответ на вопросы:
🔵 Зачем и когда нужны исключения
🔵 Почему важно помнить об исключениях при работе над кодом, даже если их не видно.
🔵 Как с помощью noexcept можно ускорить работу приложения.
🎫 Больше интересных тонкостей ждет вас на курсе, оплата возможна в рассрочку.
👉 Для участия пройдите вступительный тест: https://otus.pw/BiEX/
Реклама. Информация о рекламодателе на сайте otus.ru
Сайт на чистом C++, nginx и FastCGI
Появилась идея разработать минималистичную систему управления блогом на чистом C++. Сегодня мы создадим сервер, развернем простейший сайт на nginx и начнем работать с FastCGI, чтобы обрабатывать HTTP запросы в своем коде на C++.
Репозиторий проекта: https://github.com/staspiter/fastcgi-blog
#cpp #programming
👉 @cpp_lib
Разбор кода игры Super Mario на языке C++ (9 шагов по созданию этой игры)
00:00 Начало
00:17 Шаг 1: Создание игрока
01:48 Шаг 2: Создание платформера
07:03 Шаг 3: Создание флажка
08:26 Шаг 4: Поставить изображение frend
08:57 Шаг 5: Добавления надписей для уровня
11:25 Шаг 6: Добавления врагов
16:45 Шаг 7: Добавление урона и возрождение игрока
19:13 Шаг 8: Добавление меню
23:31 Шаг 9: Добавление музыки и звуки
26:43 Игра готова
Ссылки на картинки и звуки
Ссылка на код
источник
#cpp #programming
👉 @cpp_lib
💰 Хотите пробить свой зарплатный потолок в разработке на Unreal Engine?
Тогда научитесь создавать крутые проекты высокого качества! Присоединяйтесь к новому потоку онлайн-курса «Unreal Engine Game Developer. Professional» в OTUS.
💪 За 5 месяцев вы научитесь более углубленно разрабатывать на Blueprints и C++, работать с Core API, Lanscape and Foliage API и HTTP API. Разберём разработку под разные платформы, такие как PC, iOS, Android и VR. Вы создадите свои собственные модули расширения и поработаете с основами локализации.
🔥 Всех студентов ждут бонусы:
- Подготовительный курс по C++
- Возможность задавать вопросы голосом
- Прямое общение с преподавателями курса
- Доступ к закрытому чату в Telegram с преподавателями курса и единомышленниками
- Индивидуальный разбор резюме
- Карьерная консультация от преподавателя-практика
🎁 Пройдете вступительный тест курса и получите:
- 2 бесплатных видео урока по Unreal Engine
- Максимальную скидку на прохождение онлайн курса «Unreal Engine Game Developer. Professional»
👉 Пройти тест https://otus.pw/6BnL/
Реклама. Информация о рекламодателе на сайте www.otus.ru
Взаимодействие между процессами на С++ и PHP. Сокеты, семафоры и разделяемая память
Хочу рассказать о своём практическом опыте реализации взаимодействия между процессами в среде Linux и попытках сделать обмен максимально возможно эффективным. Сравним разные виды сокетов, задействуем примитивы синхронизации между процессами и мельком глянем, что ещё нам предлагает операционная система.
По условию, один из процессов написан на C++, второй на PHP, потому дополнительно мы рассмотрим доступность соответствующих API из PHP а также что делать, когда для нужного API PHP-обёртка отсутствует. Хотя предложенный подход не ограничивается конкретно этими языками и может быть применён для организации обмена между приложениями, реализованными на более-менее любом языке.
https://habr.com/ru/post/720126/
#cpp #programming
👉 @cpp_lib
Отладчик CMake позволяет отлаживать ваши скрипты CMake и многое другое
Команда VS CMake работала в тесном сотрудничестве с Kitware над разработкой отладчика для скриптов CMake в IDE Visual Studio (подробнее см. этот открытый вопрос Kitware). Мы будем выкладывать эту работу обратно в поток (ориентируясь на релиз 3.27), чтобы сообщество разработчиков могло получить ее и вместе работать над ее улучшением, добавляя новые функции и поддержку дополнительных возможностей DAP.
Мы рады сообщить, что предварительная версия отладчика CMake теперь доступна для отладки ваших скриптов CMake и файла CMakeLists.txt для любого проекта CMake в Visual Studio 17.6 Preview 1.
Чтобы инициировать сеанс отладки CMake, вы можете выбрать "Configure [Project Name] with CMake Debugger" из контекстного меню при щелчке правой кнопкой мыши на файле CMakeLists.txt в Solution Explorer или из выпадающего меню "Project".
https://devblogs.microsoft.com/cppblog/cmake-debugger-allows-you-to-debug-your-cmake-scripts-and-more/
#cpp #programming
👉 @cpp_lib
🔥🔝 Специально для разработчиков на С++!
➡️ Пройди тест из 20 вопросов и проверь свои знания. Сможешь сдать — пройдёшь на продвинутый курс "C++ Developer. Professional" от OTUS по специальной цене.
На этом курсе вы:
- Научитесь прикладному применению стандартов C++11 / C++14 / C++17.
- Освоите асинхронное и многопоточное программирование.
- Получите глубокое представление о шаблонной магии и паттернах проектирования.
Наглядным результатом вашей работы станет выпускной проект, который позволит вам претендовать на позицию middle C++ разработчика.
🎫Возможна оплата курса в рассрочку
👉 ПРОЙТИ ТЕСТ ПО С++: https://otus.pw/Glo5/
Хочешь протестировать учебный процесс заранее? Тогда приходи на открытый урок курса!
🎥 13 апреля в 20:00 открытый урок «Исключения и “не исключения” в С++».
Реклама. Информация о рекламодателе на сайте otus.ruДжон Кармак о функциональном программировании на C++
Вероятно, каждый читающий эту статью слышал, как "функциональное программирование" преподносится как нечто, что должно принести преимущества в разработке программного обеспечения, или даже слышал, как его называют "серебряной пулей". Однако обращение к Википедии для получения дополнительной информации может быть поначалу обескураживающим, поскольку в начале упоминаются лямбда-исчисления и формальные системы. Не сразу понятно, какое отношение это имеет к написанию лучшего программного обеспечения.
http://sevangelatos.com/john-carmack-on/
#cpp #programming
👉 @cpp_lib
Создаем классическую игру-змейку на C++ и SFML
GitHub https://github.com/CaffeinatedTech/nibbles
источник
#cpp #programming
👉 @cpp_lib
Пишем библиотеку C++
Я написал свои первые библиотеки на C++ 5 лет назад, я только начал учиться в колледже и хотел сделать что-то солидное! В один прекрасный вечер я просматривал тот старый код, он был написан очень плохо, и я начал его исправлять. Я загуглил C++ Convention, после многих результатов поиска, я обнаружил, что там нет хороших ресурсов. Поэтому я взял на себя труд написать этот!
Это практика программирования, которой можно следовать, чтобы писать читабельный хороший код.
https://dev.to/ra101/namespace-ra-how-to-write-c-library-4a4c
#cpp #programming
👉 @cpp_lib
Call Stack Logger — инструментирование функций как способ отслеживания потока выполнения программы
Доводилось ли вам когда-нибудь работать над C++ проектом с такой огромной кодовой базой, что понимание того, что на самом деле происходит во время выполнения программы, требует кучи времени и сил? Откуда и какие функции вызываются? Вам когда-нибудь поручали исправить баг в таком проекте, прилагая лишь логи, которые приближают вас к нахождению первопричины проблемы так же, как Моисей к земле обетованной? А попытки воспроизведения бага не дают вам никакой полезной информации? Если ваш ответ да – пожалуйста, присаживайтесь поудобнее.
Rus https://habr.com/ru/company/otus/blog/718258/
Eng https://dev.to/taugustyn/call-stack-logger-function-instrumentation-as-a-way-to-trace-programs-flow-of-execution-419a
#cpp #programming
👉 @cpp_lib
Мы интегрировали chatgpt в телеграм и сделали его более доступным! 🚀🚀🚀
Теперь это ваш личный помощник по программированию
С чем помогает этот бот?
✅ за вас напишет рутинный код;
✅ генерирует проверочные тесты (unit) для кода;
✅ пишет front-end и создает стили, иерархию;
✅ напишет целые программы на различных языках программирования;
✅ генерирует тексты и ключевые слова;
✅ можно использовать вместо гугла, спрашивая у бота как лучше написать код.
❗️Бот может переписать ваш код, используя заданные вами требования или исправит ошибки.
👉 Чтобы бесплатно воспользоваться ИИ
Переходите в бота @Studygpt3_bot и нажмите на кнопку «ЗАПУСТИТЬ»
Интеграции Unreal Engine теперь доступны в Visual Studio 2022
https://devblogs.microsoft.com/cppblog/unreal-engine-integrations-now-available-in-visual-studio-2022/
#cpp #programming
👉 @cpp_lib
💡 Как работать с динамической памятью в С++?
Изучим на открытом уроке онлайн-курса «C++ Developer. Professional» OTUS.
📆 30 марта в 20:00 пройдет вебинар на тему: «Динамическая память в С++ — как ее контролировать с помощью умных указателей».
На занятии мы:
➡️ Поговорим, как в С++ используют динамическую память.
➡️ Рассмотрим примеры, как с помощью идиомы RAII легко обезопасить программу от утечек памяти компьютера.
➡️ Узнаем, зачем в языке операторы new и delete и почему нужно следить за удалением объектов.
➡️ Изучим приемы, чтобы контролировать память автоматически с помощью стандартной библиотеки, а не вручную.
Не упустите шанс познакомиться с форматом обучения и преподавателем!
🎫 После вебинара вы сможете приобрести курс в рассрочку.
👉 Для участия пройдите вступительный тест: https://otus.pw/r7uv/
Реклама. Информация о рекламодателе на сайте otus.ru