Senior C++ Developer
13.3K subscribers
1.23K photos
8 videos
575 links
№ 4931128893
Изучаем C++.

По вопросам сотрудничества: @adv_and_pr
Download Telegram
msg_ptr (message pointer)

msg_ptr это указатель на структуру или класс, который содержит данные сообщения. Обычно это просто указатель void*.
Он используется в многопоточном программировании для передачи сообщений между потоками.

Использование указателей вместо копирования данных позволяет избежать лишних копий и ускорить передачу сообщений между потоками.

Если запустить код из примера, можно увидеть, что данные успешно передаются между потоками через очередь с использованием указателей на сообщения.
Нейронка VEO 3 от Google теперь в Telegram!

Нейросеть для создания видео теперь доступна напрямую. Можно генерировать видео по запросу и даже оживлять фотографии.

Ссылка: @veo3
#вопросы_с_собеседований
Что такое union?

Union - это специальный класс, который позволяет хранить данные разных типов в одной области памяти.
Основные характеристики:

- Объявляется с ключевым словом union.
- В каждый момент активно только одно поле.
- Размер равен наибольшему полю.
- Позволяет интерпретировать одну область памяти разными способами.
- Экономит память.
- Доступ к полям как в обычном классе.
#вопросы_с_собеседований
Что такое рефакторинг?

Рефакторинг - это процесс изменения внутренней структуры программы без изменения ее внешнего поведения.

Рефакторинг кода может применяться в следующих ситуациях:

- Улучшение читаемости и понятности кода.
- Оптимизация производительности.
- Устранение дублирования кода.

Рефакторинг особенно важен при работе над большими проектами, где код многократно изменяется и расширяется. Он позволяет поддерживать кодбейз чистым, современным и масштабируемым.
Ключевое слово const

Ключевое слово const используется для создания констант и неизменяемых объектов.

- Const для объявления переменных: запрещает изменение объекта после инициализации.

- Const указатели и ссылки: указатель или ссылка на константный объект. Нельзя изменить объект через них, только читать.

- Функции, возвращающие const значения: гарантируют, что функция не изменит объект.

- Const члены класса: нельзя изменить через объект класса.

- Const методы класса: не меняют члены класса. Часто применяются к getter-методам.

#это_база
🤔 Что делать, если в компании нет SRE в чистом виде? В Яндекс Маркете считают, что инженерия надёжности — это общая ответственность, а не задача отдельной команды.

Они выпустили отличный разбор, где рассказали, как эта культура надёжности устроена у них на практике и почему их инженеры по надёжности — это часто бывшие «инфраструктурщики».

В статье много интересного:

🧠 Почему в war room самый опытный инженер не чинит сам, а направляет команду.
🧠 Как автоматизированный бот избавляет инженеров от рутины во время инцидента.
🧠 Почему сервис никогда не сможет достичь заветных четырёх девяток аптайма, если платформа под ним нестабильна.

Очень полезный взгляд на организационную сторону SRE и культуру надёжности.
Ключевое слово auto

autoэто тип вывода, который позволяет компилятору автоматически определять тип переменной на основе выражения инициализации.
Он был введен в C++11 для упрощения объявления переменных, избавляя от необходимости указывать длинные и сложные типы.

При использовании auto тип переменной выводится компилятором во время компиляции и не может меняться во время выполнения.
Работает для любых типов данных — встроенных, пользовательских, шаблонов.

Переменная, объявленная с auto, всегда инициализируется при объявлении.

auto полезен при работе с итераторами, с функциями возврата сложных типов, для упрощения кода.

#это_база
#вопросы_с_собеседований
Как работают константные методы?

Константные методы — это методы, которые помечены модификатором final. Это означает, что тело метода не может быть переопределено в подклассах.

Константные методы часто используются, когда нужно предоставить клиентам неизменяемую реализацию некоторой функциональности. Например, утилитные классы часто содержат константные методы.

Основные характеристики константных методов:
— Могут вызываться на экземплярах класса, так как не являются статическими.
— Может обращаться к полям класса, даже нестатическим, т. к. вызывается на объекте класса.
— Может вызывать другие методы класса, в том числе не константные.
— Сигнатура константного метода в подклассе должна полностью совпадать с сигнатурой в суперклассе, иначе это будет перегрузка, а не переопределение.
rvalue

Rvalue — это временный объект, который может быть перемещен или скопирован. Например, результат выражения или возвращаемое значение функции — это rvalue.
Rvalues являются временными объектами, которые разрушаются после использования. Перемещение ресурсов из rvalue более эффективно, чем копирование.

Константные ссылки или ссылки на const (const T&) могут связываться только с lvalues.
Неконстантные ссылки (T&) могут связываться как с lvalues, так и с rvalues.

*Lvalue — объект с именем, например переменная.

#это_база
🎮 Киношный рендер в UE5 для 3D-художников

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

👉Что вы узнаете:
- Основы кинематографического рендеринга в Unreal Engine 5
- Работа с Movie Render Queue и настройка параметров рендера
- Создание реалистичных эффектов освещения и постобработки
- Техники создания кинематографических бликов и боке
- Настройка глубины резкости и фокусных эффектов
Бесплатный вебинар проходит в рамках курса “3D Artist“

Регистрация и подробнее о курсе 3D Artist - https://otus.pw/pOPz/

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

Токенизация строки — это процесс разбиения строки на токены (лексемы) — отдельные элементы, например слова, числа, операторы.

Для токенизации нужно:

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

Для разбиения строки на токены в С++ удобно использовать stringstream.
Для хранения результатов часто используют структуры или классы, хранящие тип и значение токена.

Токенизация нужна для разбора входных данных, конфигурационных файлов, математических выражений и т. д.

#это_база