Библиотека C/C++ разработчика
رفتن به کانال در Telegram
Полезные материалы по всему, что может быть полезно плюсовику/сишнику. По всем вопросам @evgenycarter
نمایش بیشتر7 326
مشترکین
-124 ساعت
+27 روز
+1330 روز
آرشیو پست ها
Приложение для аудиозвонков с регулировкой звука, как в реальной жизни
Распространенная в пандемию ситуация: общаетесь с друзьями или коллегами по Zoom, несколько человек начинают говорить одновременно и… разобрать хоть что-то не представляется возможным. Эта проблема натолкнула нас на идею написать свое приложение для аудиозвонков, где громкость регулируется весьма необычным образом. У каждого пользователя есть свой аватар — кружок на плоскости, который управляется перетаскиванием. Чем ближе аватары пользователей на экране, тем громче они друг друга слышат. Работает ли это? В целом да. Рассказываем, что у нас получилось.
#cpp #programming
👉 @cpp_lib
Просто о сложном — пишем тесты с Google C++ Testing Framework (GTest, GMock)
Всем привет. Недавно по работе возникла потребность разобраться с созданием новых тестов на GTest/GMock. Конкретно мой вопрос был связан с его конструкциями типа EXPECT_CALL и моками - что это за магические штуки и как они работают? Однако, по мере изучения выяснились и другие интересные вещи, с которыми хотел бы поделиться.
#cpp #programming
👉 @cpp_lib
С++ с нуля
1 - переменные, оператор присваивания
2 - арифметические операции
3 - директивы препроцессора
4 - условные операторы if и switch
5 - операторы циклов while, for и do while
6 - массивы, метод всплывающего пузырька
7 - строки и функции работы с ними
8 - функции: прототипы, перегрузка, рекурсия
9 - области видимости переменных, статические переменные
10 - битовые операции И, ИЛИ, НЕ, XOR и сдвиговые операции
#cpp #programming
👉 @cpp_lib
Bjarne Stroustrup: C++ | Lex Fridman Podcast
https://www.youtube.com/watch?v=uTxRF5ag27A
#cpp #programming
👉 @cpp_lib
Общий обзор того, что происходит перед main()
https://embeddedartistry.com/blog/2019/04/08/a-general-overview-of-what-happens-before-main
#cpp #programming
👉 @cpp_lib
Physically-based rendering. Ray marching
Если ты сейчас здесь, скорее всего, тебе интересна компьютерная графика и фотореалистичный рендеринг. В этой статье я постарался рассказать об основных понятиях и объяснить базовые принципы трассировки лучей. Если внимательно ее прочитать, в конце можно получить правдоподобную фотографию мыльного пузыря и не только.
Часть 1 Часть 2
#cpp #programming
👉 @cpp_lib
Корутины C++20 и многозадачность на примере контроллеров stm32
Одним из наиболее ярких нововведений, которые получил язык в стандарте C++20, является поддержка сопрограмм (или корутин). Разработчики ПО для микроконтроллеров сразу могут заметить, что корутина похожа на задачу в операционной системе.
Итак, давайте разберем несколько несложных вариантов планирования задач от самого примитивного до чего-то отдалённо напоминающего операционную систему.
#cpp #programming
👉 @cpp_lib
Learning C++20
Jthreads and stop tokens
Concepts
Atomic References
Spans
The Spaceship Operator
Likely and Unlikely Attributes
Custom Concepts
Immediate Functions
Constrained Algorithms
Плейлист https://www.youtube.com/playlist?list=PLxNPSjHT5qvub0YaHcWQG9uX-8p_aKERd
#cpp #programming
👉 @cpp_lib
Альтернативы исключениям С++ и зачем они нужны
Современные тенденции в области аппаратного обеспечения ведут к тому, что использование исключений на C++ всё труднее и труднее оправдать. В представленной работе эта проблема иллюстрируется наглядно, даётся её количественная оценка и обсуждаются потенциальные будущие направления исправления исключений.
Original https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2544r0.html
#cpp #programming
👉 @cpp_lib
Сравнение библиотек параллелизма Rust и C++
Функции параллелизма, включенные в стандартную библиотеку Rust, довольно похожи на те, что были доступны в C++11
https://blog.m-ou.se/rust-cpp-concurrency/
#cpp #programming
👉 @cpp_lib
Руководство по CMake для разработчиков C++ библиотек
В этой статье я расскажу о том, как правильно писать современные CMakeLists.txt файлы для C++ библиотек. Идеи, используемые в ней, основаны на докладе Крейга Скотта (разработчик CMake) и докладе Роберта Шумахера (разработчик vcpkg) c CppCon 2019. Поскольку мне достаточно часто приходится разрабатывать С++ библиотеки, я создал для себя небольшой шаблон cpp-lib-template, который будет использоваться в этой статье в качестве примера.
Замечу, что я предполагаю, что читатель этой статьи имеет опыт работы с CMake, однако, как и я, часто задается вопросом, как правильно ему сделать сборку своей библиотеки.
#cpp #programming
👉 @cpp_lib
Змейка на C++ в стиле реактивного программирования
Привет всем, и добро пожаловать в мир современного C++ и реактивного программирования =)
https://itnext.io/snake-game-on-c-in-the-reactive-programming-way-19310a73923a
#cpp #programming
👉 @cpp_lib
🦾Хотите применять С в своих проектах?
Тогда успевайте записаться на онлайн-курс «Программист С» от OTUS.
🚀Всего 5 месяцев живых вебинаров и практики — и вы сможете:
- Создавать низкоуровневые приложения
- Писать приложения для UNIX-подобных систем
- Разрабатывать под микроконтроллеры и развиваться в IoT-направлении
- Заниматься системным программированием
В конце вас ждет свой проект на C, который поможет отточить полученные навыки.
⏰Начало занятий — 29 сентября.
👉Пройдите вступительный тест, чтобы успеть занять место в группе:
https://otus.pw/eyKh/
Джон Кармак: Doom, Quake, VR, AGI, программирование, видеоигры и ракеты | Lex Fridman Podcast
Джон Кармак - легендарный программист, сооснователь компании id Software и ведущий программист многих революционных видеоигр, включая Wolfenstein 3D, Doom, Quake и серию игр Commander Keen. Он также является основателем компании Armadillo Aerospace и на протяжении многих лет техническим директором Oculus VR.
0:00 - Introduction
1:57 - Programming languages
33:01 - Modern programming
43:03 - Day in the life
50:53 - Hard work
54:06 - Pizza and Diet Coke
56:50 - Setup
1:22:08 - id Software
1:54:58 - Commander Keen
2:01:44 - Hacker ethic
2:09:24 - Wolfenstein 3D
2:29:21 - Doom
2:43:42 - Quake
3:08:02 - John Romero
3:15:49 - Metaverse
3:44:11 - Elon Musk
3:50:06 - Mars
3:59:09 - Nuclear energy
4:02:47 - AGI
4:49:59 - Andrej Karpathy
4:52:57 - Martial arts
5:01:57 - Advice for young people
5:10:57 - Meaning of life
источник
#cpp #programming
👉 @cpp_lib
В программировании на С++ много нюанов, о которых нужно знать всем, кто претендует на звание Middle-разработчика.
👨🏻💻 В этом убедился выпусник онлайн-курса «C++ Developer. Professional» OTUS:
«За 6 месяцев курсов узнал и попробовал в C++ больше, чем за много лет программирования. Администрация «держит руку на пульсе» и является активным участником образовательного процесса. Широкий тематический охват курса несколько сместил акцент с собственно языка на другие IT-технологии. Это неплохо для кругозора, но с другой стороны c++ сам по себе очень сложный и объёмный язык, которому одному можно посвятить несколько подобных курсов целиком. Из преподавателей больше всего понравился Сергей Кольцов».
👉🏻 Хочешь тоже углубить свои навыки C++ разработки и правильно писать свой код?
Присоединяйся к новому потоку курса по спец. цене — https://otus.pw/fveM/
[C++ Engine] Code Generation and Auto Hot Reloading
исходный код https://drive.google.com/file/d/1gxiX-Ur6pwqTYQAmm2-HwxePT7Qrp64w/view
#cpp #programming
👉 @cpp_lib
Ночь бэкендеров в Яндекс Банке
Собеседования — это долго, скучно, иногда мучительно и не всегда понятно. Как вообще можно понять за пару часов, хочешь ли ты работать где-то в ближайшие пару лет? Поэтому в Финтехе Яндекса придумали кое-что получше — препати для тех, кто хочет взять компанию на тест-драйв. Можно бесконечно смотреть отзывы на Хабр Карьере, но лучше один раз увидеть всё своими глазами.
Ребята организуют подобные встречи уже не в первый раз, и в октябре собирают бэкендеров — чтобы совместить приятное с полезным: лично познакомиться с командой и руководством, услышать о продуктах в разработке от первых лиц, прошвырнуться по офису, подышать яндексовым воздухом и вообще приятно провести пятничный вечер.
Кормить будут. Вкусно. Поить тоже — бар прямо в офисе. А в промежутках между разговорами о невыносимой лёгкости бэкенд-бытия можно будет порубиться в PS5 с коллегами по цеху, выведать все инсайды у продакт-оунера и просто почилить. Если ты не в Москве, собирай чемоданы — ребята не будут дразнить кутежом в зуме, а купят билет и организуют трансфер.
P.S.: дресс-кода нет, но есть задачка с кодом. Если ты действительно бэкендер, то решишь её без труда и приглос у тебя в кармане! Подробности 👉 тут.
FizzBuzz по-сениорски
- Добрый день, я на интервью на позицию старшего разработчика.
- Здравствуйте, давайте начнем с небольшого теста, пока я ваше CV смотрю. Напишите программу, которая выводила бы числа от 1 до, скажем, миллиарда, притом если число кратно трем, то вместо числа выводится Fizz, если кратно пяти, то Buzz, а если и трем, и пяти, то FizzBuzz.
Серьезно, FizzBuzz? Задачка для начальной школы, на сениорскую позицию? Ну ладно. Далее
#cpp #programming
👉 @cpp_lib
Идиома CRTP и написание общих функций в C++
Что такое идиома CRTP?
Термин CRTP (curiously recurring template pattern) появился в 1995 году в одноименной статье, написанной Джеймсом О. Коплином. Он предполагает специализацию базовых классов с использованием производных классов в качестве аргументов шаблона. Далее
#cpp #programming
👉 @cpp_lib
Осваиваете C++?
⚡️ Приглашаем 20 сентября, вторник в 20:00 мск на бесплатный вебинар «ООП глазами C++».
📚 На вебинаре поговорим и посмотрим на примерах, как термины ООП реализуются в синтаксисе языка C++.
Хоть и модно критиковать ООП-подход к разработке кода, он остаётся самым популярным во многих и многих сферах. Поэтому настоящему профессионалу необходимо знать и уметь использовать данную парадигму разработки.
✅ Используйте эту возможность, чтобы познакомиться с преподавателем и оценить материалы онлайн-курса «C++ Developer» от OTUS!
👉 Записаться на вебинар: https://otus.pw/C7sO/
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
