cpp_lib | Unsorted

Telegram-канал cpp_lib - Библиотека C/C++ разработчика

2630

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

Subscribe to a channel

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

6 невозможных вещей - Кевлин Хенни - Открытие Keynote Meeting C++ 2023

"Иногда я верю в шесть невозможных вещей до завтрака", - сказала Королева Алисе во время ее приключений через зазеркалье. Всего шесть? В разработке программного обеспечения мы постоянно верим в невозможные вещи, независимо от времени суток! Однако в этом докладе мы рассмотрим шесть конкретных невозможных вещей, которые определяют границы наших возможностей, начиная с мельчайших деталей представления целых чисел и заканчивая минным полем оценки задач и расстановки приоритетов, неопределенностью распределенных систем и пределами вычислимости. Как только мы узнаем свои пределы, мы сможем работать в их рамках, создавая решения, а не проблемы.

источник

#cpp #programming

👉 @cpp_lib

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

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

📚Beginning C++20: From Novice to Professional
Авторы: Ivor Horton, Peter Van Weert (2020)

Начните с изучения основ программирования, продвигаясь через пошаговые примеры, которые помогут вам стать опытным программистом на C++. В эту книгу включены новые возможности стандарта C++20, такие как модули, концепты, диапазоны и spaceship operator. Все языковые концепции, которые объясняются в книге, проиллюстрированы примерами рабочих программ, а все главы включают упражнения, которые помогут вам проверить и попрактиковать свои умения. Для всех примеров из текста и решений упражнений предусмотрена бесплатная загрузка исходного кода.

Во время чтения книги вы:
✔Начнете программировать со стандартом C++20;
✔Изучите работу с массивами и циклами, указателями и ссылками, строками и т. д.;
✔Напишете свои собственные функции, типы и операторы;
✔Откроете для себя основы объектно-ориентированного программирования;
✔Используете перегрузку, наследование, виртуальные функции и полиморфизм;
✔Напишете общие шаблоны функций и классов и сделаете их безопасными;
✔Изучите все тонкости контейнеров, алгоритмов и диапазонов.

#cpp #programming

👉 @cpp_lib

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

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

Dangerous Dave

Серия видеороликов, показывающих начинающим программистам, как воссоздать Dangerous Dave с помощью C и SDL (2 часа)

источник

#cpp #programming

👉 @cpp_lib

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

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

Устал писать тесты с кучей моков? Сложно поддерживать приложение, ведь бизнес логика перемешалась с инфраструктурой? 😰

Присоединяйся к нашему практическому курсу по Domain Driven Design, где за 10 вебинаров мы разложим все по полочкам.

🚀Стартуем 1 апреля. Присоединяйся прямо сейчас https://microarch.ru/courses/hexagonal-architecture?utm_source=posev&utm_medium=erid:2VtzqwtV8Fo&utm_campaign=10

Наш курс по Domain-Driven Design позволит вам изучить основы и принципы этого подхода, а также освоить практические навыки, необходимые для успешного применения DDD в реальных проектах. Вы узнаете:
✅ Что такое Domain-Driven Design и почему он так важен для современных разработчиков.
✅ Основы проектирования доменов и формирование предметной области.
✅ Принципы и методы моделирования предметной области, включая разработку моделей предметной области и определение бизнес-правил.
✅ Создание эффективных и масштабируемых сервисов с использованием DDD.
✅ Применение шаблонов проектирования и принципов DDD для оптимизации кода и повышения производительности.

Курс ведет действующий архитектор и разработчик Кирилл Ветчинкин. Он успешно реализовал проекты для Мегафона, Теле2, ВСS Brокer. Постоянный спикер крупных IT-конференций.

Не упусти шанс стать экспертом! Присоединяйся к нашему курсу и раскрой свой потенциал в разработке успешных проектов уже сегодня https://microarch.ru/courses/hexagonal-architecture?utm_source=posev&utm_medium=erid:2VtzqwtV8Fo&utm_campaign=10

Реклама. ИП Ветчинкин К.Е. ИНН: 773376451099 Erid: 2VtzqwtV8Fo

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

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

Автоматическая Генерация Конфигураций для Make Сборок

При разработке программного обеспечения (особенно для микроконтроллеров) рано или поздно придется столкнуться с тем, что надо как-то передавать конфигурации для данного программного проекта.

В своем опыте я пришел к выводу, что с точки зрения масштабирования кодовой базы, конфиги проще всего передавать через переменные окружения. Да.. Плюс в том, что переменные окружения можно определять прописывая прямо в скриптах (Make, CMake и т.п.).

Выглядит это так. У каждой сборки есть файл config.mk в котором перечислены программные компоненты из которых должна собираться эта конкретная сборка. Содержимое этого файла обычно выглядит так.

https://habr.com/ru/articles/798213/

#cpp #programming

👉 @cpp_lib

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

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

Отладка C при помощи пакета Cosmopolitan Libc

Cosmopolitan Libc предоставляет набор отладочных возможностей, повышающих удобство разработки на C: трассировка вызовов функций, интеграция с gdb, среда выполнения ASAN/UBSAN и многое другое! На C написано много быстрого и критически важного кода. Если вы пользуетесь программами, написанными на C, если вам приходится предусматривать интерфейсы для работы с библиотеками на C, исправлять баги в коде на C, либо даже переписывать имеющуюся на С программу на каком-то другом языке, то именно этот инструмент помогает понять, что делается в вашем коде на C. Отладка – это не просто россыпь инструкций printf. В этом посте будет рассмотрено, как Cosmopolitan Libc помогает наверняка и как следует отлаживать код C. Все примеры находятся в этом репозитории.

https://ahgamut.github.io/2022/10/23/debugging-c-with-cosmo/

#cpp #programming

👉 @cpp_lib

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

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

Words counter benchmarks

Это серия все более производительных "счетчиков слов" (не вычурных, просто разделяющих "слова" пробелами), реализованных с использованием возможностей Modern C++20, таких как span, string_view, filesystem, ranges и других.

При необходимости используются параллельные хэш-карты и другие зависимости, такие как контейнеры Abseil, Boost.Future (допускающие продолжения) или Asio с корутинами C++20.

https://github.com/germandiagogomez/words-counter-benchmarks-game

#cpp #programming

👉 @cpp_lib

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

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

Хотите с нуля освоить разработку игр или сменить сферу на геймдев?

Отус приглашает 27 марта в 20:00 по мск на бесплатный вебинар по Unreal «Создаём шутер от первого лица на Unreal Engine 5»!

Вебинар является частью полноценного онлайн-курса «Unreal Engine Game Developer. Basic».

На вебинаре вы узнаете об отличиях и преимуществах движка Unreal Engine 5, установите его и научитесь базово ориентироваться в его интерфейсе.

➡️ Регистрация на вебинар: https://vk.cc/cvzl6x

Основные темы вебинара:
✔️ Что такое игровой движок
✔️ Основные отличия и преимущества Unreal Engine 5
✔️ Установка и настройка Unreal Engine 5
✔️ Подбор ассетов из маркетплейса
✔️ Создание проекта

Не упустите свою возможность, попробовать себя в роли разработчика игр на Unreal Engine!

После вебинара вы сможете продолжить обучение на специальных условиях и получить видеокурс по программированию на С++ в подарок.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

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

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

Рефакторинг с использованием C++17 std::optional

Существует множество ситуаций, когда вам нужно выразить, что что-то является "необязательным" - объект, который может содержать значение или нет. У вас есть несколько вариантов реализации такого случая, но в C++17 появился, пожалуй, самый полезный способ: std::optional.

Сегодня я подготовил один пример рефакторинга, где вы можете научиться применять эту новую возможность C++17.

https://www.cppstories.com/2018/04/refactoring-with-c17-stdoptional/

#cpp #programming

👉 @cpp_lib

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

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

Развлечения с gRPC и C++

Погружение в асинхронные серверы и клиенты с использованием C++ и gRPC в 2023 году

Почему я пишу эту серию статей? Так получилось, что я хочу использовать gRPC в своем будущем DNS-сервере.

В прошлом я уже использовал gRPC - с большим трудом. В этот раз я посмотрел несколько примеров и сделал что-то вроде реализации - но понял, что это дерьмо. К тому же было слишком много вещей, которых я не знал и не понимал, чтобы исправить это. Поэтому я решил потратить некоторое время на игру с gRPC, чтобы лучше понять его.

https://lastviking.eu/fun_with_gRPC_and_C++/

#cpp #programming

👉 @cpp_lib

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

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

🦾Хардкорный тест по языку С🦾

📌Пройдите полный тест из 20 вопросов на сайте и проверьте, насколько вы готовы к обучению на углубленном курсе - «Программист С» от OTUS. Сможете сдать - пройдете на курс по спеццене!

⏰ Время прохождения теста ограничено 30 минут

👉ПРОЙТИ ТЕСТ

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

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

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

C++: Трассировка лучей за одни выходные

За годы работы я провел множество занятий по графике. Часто я провожу их по трассировке лучей. Я решил адаптировать свои заметки к курсу, чтобы как можно быстрее познакомить вас с полезной программой. Это не будет полнофункциональный трассировщик лучей, но в нем есть непрямое освещение, которое сделало трассировку лучей основным элементом в фильмах. Следуйте этим шагам, и архитектура созданного вами трассировщика лучей будет пригодна для создания более обширного трассировщика лучей, если вы увлечетесь и захотите этим заняться.

https://raytracing.github.io/books/RayTracingInOneWeekend.html

#cpp #programming

👉 @cpp_lib

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

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

Простое руководство по атомарности в C++

Часто возникает путаница с тем, что же понимается в компьютерных науках под «атомарностью». Как правило, атомарность – это свойство процесса, означающее, что он совершается за один шаг или операцию. Но в языке C++ атомарность определяется гораздо более специфичным образом. На самом деле, при использовании std::atomic с классами и типами еще не гарантируется, что весь код будет подлинно атомарным. Хотя, атомарные типы и входят в состав языка C++, сами атомарные операции должны поддерживаться на уровне того аппаратного обеспечения, на котором работает программа. Эта статья – простое руководство, помогающее понять, что же представляет собой атомарность в C++.

https://blog.devgenius.io/a-simple-guide-to-atomics-in-c-670fc4842c8b

#cpp #programming

👉 @cpp_lib

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

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

Ecs-cpp

Entity Component System (ECS) - это шаблон проектирования, который используется для разделения данных и логики. Это способ организовать код таким образом, чтобы он был более гибким и удобным в обслуживании. Этот паттерн часто используется в игровых движках, но может применяться и в других приложениях.

Рассматривайте его как контейнер, в котором хранятся сущности, и каждая сущность может иметь один или несколько компонентов. Компонент - это структура данных, которая хранит данные, а система - это функция, которая работает с сущностями, имеющими определенный набор компонентов. Систему можно рассматривать как функцию, которая принимает набор компонентов и выполняет операции над ними. Контейнер ECS отвечает за отслеживание того, какие сущности имеют те или иные компоненты, и какие системы должны быть запущены на тех или иных сущностях.

https://github.com/annell/ecs-cpp

#cpp #programming

👉 @cpp_lib

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

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

❓Чем перемещение отличается от копирования в C++?

Узнайте на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом разберете:

- синтаксис и подводные камни move-семантики;
- отличие копирования от перемещения;
- когда компилятор может сам, а когда ему нужно подсказать;
- как отличить rvalue от lvalue;
- как избегать лишнего копирования объектов.

⏰ Занятие пройдёт 21 марта в 20:00 мск и будет приурочено к старту курса «Специализация C++ Developer». Доступна рассрочка на обучение!

👉 Зарегистрируйтесь прямо сейчас: https://otus.pw/DefN/?erid=2VtzqwJbp9S

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

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

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

🦾 Изучите Qt Remote Objects и межпроцессное взаимодействие для старта работы в кроссплатформенной разработке

🎙 Ждём вас на бесплатном практическом уроке от OTUS, спикер Владимир Щелов — ведущий разработчик в 1С.

На вебинаре:

- поговорим про механизм Qt Remote Objects;
- разберем его работу на примере;
- освоим удобный механизм организации межпроцессного взаимодействия, доступный на Qt;
- научимся пользоваться им на конкретном примере.

Встречаемся 2 апреля в 19:00 мск в рамках курса «Разработка прикладного ПО на Qt и ОС Аврора». Доступна рассрочка на обучение!

👉 Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://vk.cc/cvJYMI

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

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

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

Перед вами — книга-метод, книга-наставник, способная перевернуть мышление и помочь выработать осознанный подход к работе и жизни в целом путём высокоуровневого планирования.

В своей второй книге IT-архитектор, методолог, педагог Александр Бындю раскрывает наиболее эффективный на сегодняшний день метод стратегического планирования, получивший название «Карта гипотез». Карта учит, как достигать намеченной цели через гипотезы, и служит навигатором на этом пути. В основу книги легли годы практики, и с уверенностью можно сказать, что Карта гипотез позволяет создать стратегию достижения для самых амбициозных целей.

У Карты гипотез нет ограничений по области применения или роли пользователя — она будет полезна в самых разных ситуациях, от личного планирования до планирования работы огромной компании. Автор надеется, что его метод, которому посвящена эта книга, послужит вашему благополучию во всех сферах жизни.

Ознакомиться с книгой

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

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

🔥 Освой актуальные инструменты разработки на С++

Пройди тест по C++ и проверь подходит ли тебе наш курс

Ответишь
— пройдешь на продвинутый курс "C++ Developer. Professional" от OTUS по специальной цене + получишь запись мастер-класса от преподавателя курса.

👉 ПРОЙТИ ТЕСТ: https://vk.cc/cvHNq8

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

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

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

C++: Эмулятор NES с нуля

#1: Bitwise Basics & Overview
#2: The CPU (6502 Implementation)
#3: Buses, RAMs, ROMs & Mappers
#4: PPU - Background Rendering
#5: PPU - Foreground Rendering
#6: APU - Sounds, Beeps & Bloops
#7: More About Mappers

источник

#cpp #programming

👉 @cpp_lib

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

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

📚C++ Standard Library Quick Reference
Авторы: Marc Gregoire, Peter Van Weert (2016)

Стандартная библиотека шаблонов является жемчужиной языка программирования С++ и содержит основные алгоритмы, структуры данных и функции, необходимые для повседневной работы. Обычно она изучается в конце любого руководства по С++, однако этот справочник направлен исключительно на изучение STL, рассматривая основные темы, такие как контейнеры, лямбда-выражения, указатели и функции по работе с многопоточностью.

В книге рассматриваются следующие темы:
✔️ математические функции;
✔️ контейнеры;
✔️ алгоритмы;
✔️ потоки ввода/вывода;
✔️ строки;
✔️ многопоточность.

#cpp #programming

👉 @cpp_lib

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

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

💡 Разрабатываешь на C++? Освой кроссплатформенную разработку на QT и ОС Аврора

❗️ Вкладывай в перспективу - вкладывай в себя!

Пройди тест из 20 вопросов и проверь, насколько хорошо nы знаешь язык C++ и готов освоить QT и ОС Аврора .
Сможешь сдать — пройдёшь на продвинутый онлайн-курс "Разработка прикладного ПО на Qt и ОС Аврора" от OTUS.

👉 ПРОЙТИ ТЕСТ: https://vk.cc/cvBd8i

Курс доступен в рассрочку.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

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

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

📚Expert C++: Become a proficient programmer by learning coding best practices with C++17 and C++20's latest features
Авторы: Vardan Grigoryan, Shunguang Wu (2020)

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

#cpp #programming

👉 @cpp_lib

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

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

Разработка кросплатформенного приложения на Qt с использованием нейросетей, обученных на tensorflow

Раз уж Вы заинтересовались данной статьёй, то ожидается, что Вы умеете программировать на с++ с использованием библиотеки Qt и разрабатывать нейросети на Python c использованием библиотеки tensorflow.
Соответственно остаётся только понять как использовать обученные Вами нейросетевые модели в Qt проектах.

https://habr.com/ru/articles/719888/

#cpp #programming

👉 @cpp_lib

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

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

👩‍💻 Как прокачать свои скиллы в разработке на С++?

Прийти на бесплатный практический урок «Атомарные типы данных и Memory Ordering» от OTUS.

На вебинаре:

🔹 поговорим о типах данных в C++, для которых не нужна дополнительная синхронизация при конкурентом доступе;
🔹 разберемся, как С++ помогает тонко оптимизировать lock-free разработку с помощью memory ordering.

Встречаемся 28 марта в 20:00 мск в рамках курса «C++ Developer. Professional». Доступна рассрочка на обучение!

➡️ Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://vk.cc/cvxvCy

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

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

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

C++ Что такое указатели и зачем они нужны

#cpp #programming

👉 @cpp_lib

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

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

Генерация пещер при помощи клеточного автомата

Клеточный автомат — дискретная модель, изучаемая в математике, теории вычислимости, физике, теоретической биологии и микромеханике. Основой является пространство из прилегающих друг к другу клеток (ячеек), образующих решётку. Каждая клетка может находиться в одном из конечного множества состояний (например, 1 и 0).

https://habr.com/ru/articles/741564/

#cpp #programming

👉 @cpp_lib

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

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

💡 QT и ОС Аврора: надежная основа для разработки востребованного ПО!

❗️ Вкладывай в перспективу - вкладывай в себя!

Пройди тест из 20 вопросов и проверь, насколько хорошо nы знаешь язык C++ и готов освоить QT и ОС Аврора .
Сможешь сдать — пройдёшь на продвинутый онлайн-курс "Разработка прикладного ПО на Qt и ОС Аврора" от OTUS.

👉  ПРОЙТИ ТЕСТ:  https://vk.cc/cvtPSB

Курс доступен в рассрочку.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

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

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

🦾 Раскрой всю мощь C++

Пройди тест по C++ и проверь свои знания.

Ответишь
— пройдешь на продвинутый курс "C++ Developer. Professional" от OTUS по специальной цене + получишь запись мастер-класса от преподавателя курса.

➡️ ПРОЙТИ ТЕСТ: https://vk.cc/cvrZSD


На этом курсе ты:
✔️ Научишься прикладному применению стандартов C++11 / C++14 / C++17.
✔️ Освоишь асинхронное и многопоточное программирование.
✔️ Получишь глубокое представление о шаблонной магии и паттернах проектирования.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

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

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

C++: Рендеринг на основе физики: от теории к реализации
Мэтт Фарр, Венцель Якоб и Грег Хамфрис

Фотореалистичная компьютерная графика повсеместно распространена в современном мире, широко используется в кино и видеоиграх, а также в дизайне продуктов и архитектуре. Физически обоснованные подходы к рендерингу, когда в основе синтеза изображения лежит точное моделирование физики рассеивания света, обеспечивают визуальную реалистичность и предсказуемость. Этот учебник по компьютерной графике, ставший бестселлером, в новом, всесторонне обновленном издании устанавливает стандарты физически-ориентированного рендеринга в индустрии и области.

Книга Physically Based Rendering описывает как математическую теорию, лежащую в основе современной системы фотореалистичного рендеринга, так и ее практическую реализацию. Метод, известный как грамотное программирование, объединяет человекочитаемую документацию и исходный код в единый справочник, специально разработанный для облегчения понимания. Передовые алгоритмы, программное обеспечение и идеи книги, включая новый материал о трассировке лучей на GPU, позволят читателю разработать и использовать полнофункциональную систему рендеринга, способную создавать потрясающие изображения.

https://www.pbr-book.org/4ed/contents

#cpp #programming

👉 @cpp_lib

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

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

C++: Движок Raycasting для Wolfenstein 3D

Raycasting - это техника рендеринга для создания 3D-перспективы на 2D-карте. В те времена, когда компьютеры были более медленными, невозможно было запустить настоящие 3D-движки в реальном времени, и первым решением стал рэйкастинг. Raycasting может работать очень быстро, потому что для каждой вертикальной линии экрана нужно сделать только один расчет. Самой известной игрой, в которой использовалась эта техника, является, конечно же, Wolfenstein 3D.

https://lodev.org/cgtutor/raycasting.html

#cpp #programming

👉 @cpp_lib

Читать полностью…
Subscribe to a channel