➡️ Упрощение работы с асинхронными задачами с помощью C++20 coroutines
С выходом C++20 в язык были добавлены корутины, которые значительно упрощают написание асинхронного кода. Корутинный синтаксис делает код более читаемым и управляемым, устраняя необходимость в явных состояниях или сложных коллбэках.
C++ Learning 👩💻
С выходом C++20 в язык были добавлены корутины, которые значительно упрощают написание асинхронного кода. Корутинный синтаксис делает код более читаемым и управляемым, устраняя необходимость в явных состояниях или сложных коллбэках.
• Корутина simpleCoroutine: Функция simpleCoroutine является корутиной, что обозначается использованием co_return для завершения ее выполнения. Она выводит сообщение на экран и завершает свою работу.C++ Learning 👩💻
Устроиться аналитиком в Яндекс за выходные
6–9 июля проводим Weekend Offer Analytics. До 3 июля оставьте заявку на участие, 6–8 июля пройдите технические собеседования, а 9 июля познакомьтесь с командами и получите офер.
В мероприятии участвует 9 команд: Crowd, Карты, Поиск, Алиса, R&D, Автономный транспорт, Подразделение аналитики, Антифрод, Антиробот. Вы сможете пообщаться с менеджерами и выбрать проект, который покажется самым интересным.
Нанимаем в офисы России и Республики Беларусь.
Узнать подробности и зарегистрироваться можно здесь.
6–9 июля проводим Weekend Offer Analytics. До 3 июля оставьте заявку на участие, 6–8 июля пройдите технические собеседования, а 9 июля познакомьтесь с командами и получите офер.
В мероприятии участвует 9 команд: Crowd, Карты, Поиск, Алиса, R&D, Автономный транспорт, Подразделение аналитики, Антифрод, Антиробот. Вы сможете пообщаться с менеджерами и выбрать проект, который покажется самым интересным.
Нанимаем в офисы России и Республики Беларусь.
Узнать подробности и зарегистрироваться можно здесь.
Привет! Меня зовут Бекхан, мне 28 лет. Узнайте обо мне больше, открыв картинку над постом или прочитав полный текст здесь.
Сейчас я занимаюсь разработкой собственной игры с нуля и сталкиваюсь с различными вызовами и подводными камнями. Все свои знания и опыт я конспектирую и делюсь ими на своем сайте и телеграм-канале.
Я всегда стараюсь глубоко и основательно разбираться в возникающих вопросах, и мне кажется, что это будет полезно и для вас.
Хотя постов в моем телеграм-канале пока не так много, я уверен, что с увеличением аудитории у меня будет больше мотивации делиться своим опытом и писать новые посты.
Подписывайтесь на мой телеграм-канал Bekhan Code, чтобы не пропустить полезные советы и инсайты по разработке игр.
Попасть в Bekhan Code
Сейчас я занимаюсь разработкой собственной игры с нуля и сталкиваюсь с различными вызовами и подводными камнями. Все свои знания и опыт я конспектирую и делюсь ими на своем сайте и телеграм-канале.
Я всегда стараюсь глубоко и основательно разбираться в возникающих вопросах, и мне кажется, что это будет полезно и для вас.
Хотя постов в моем телеграм-канале пока не так много, я уверен, что с увеличением аудитории у меня будет больше мотивации делиться своим опытом и писать новые посты.
Подписывайтесь на мой телеграм-канал Bekhan Code, чтобы не пропустить полезные советы и инсайты по разработке игр.
Попасть в Bekhan Code
➡️ Унарный оператор +
Перевода Enumeration в integer:
Получения значения переменной:
Унарный + позволяет использовать классы со встроенными статическими инициализаторами без внешнего объявления, создавая временный класс, не зависящий от типа.
C++ Learning 👩💻
• Мало кто знает о возможностях унарного оператора + в C++. Он может использоваться для:Перевода Enumeration в integer:
+AnEnumeratorValue
• Это делает значение перечислителя типом integer, что полезно при перегрузке операторов для перечислений.Получения значения переменной:
Унарный + позволяет использовать классы со встроенными статическими инициализаторами без внешнего объявления, создавая временный класс, не зависящий от типа.
• Разложение массива на указатели. Вам необходимо передать два указателя какой-либо функции, однако вы наперед знаете, что ничего из этого не выйдет? В этом случае вам очень пригодится операторC++ Learning 👩💻
➡️ Злой друг программиста: переопределение ключевых слов
C++ Learning 👩💻
• Переопределение ключевых слов — плохая практика программирования, но это возможно через препроцессор. Это может вводить баги, например, #define true false или #define else.#define int float
#define float char
• Такой код будет работать, хотя это может быть полезно в некоторых ситуациях. Например, если мы используем большую библиотеку и не хотим публичного наследования, мы можем временно отключить защиту доступа перед подключением заголовков библиотеки, а затем снова включить её.#define public private
#include "mylibrary.h"
#undef private
• Это позволяет управлять доступом к библиотеке без её изменения, но требует осторожности.C++ Learning 👩💻
Приходите на C++ Zero Cost Conf
📍 27 июля в Москве и Ереване пройдет прикладная конференция С++ Zero Cost Conf 2024.
Практикующие эксперты из крупнейших компаний выступят с докладами, поделятся реальными кейсами и метриками:
🔴 Антон Полухин, руководитель группы разработки общих компонент в Яндекс Go. Обсудит новости со встречи Международного комитета по стандартизации языка С++ в Сент-Луисе и расскажет о планах на C++26 и C++29
🔴 Константин Владимиров, руководитель отдела компиляторов и средств разработки в Syntacore. Расскажет об интересных C++-решениях в генераторе llvm-snippy
🔴 Юрий Минаев, архитектор C++-анализатора в PVS-Studio. Поговорит о семантике C++ и покажет, как устроены таблица символов, внутреннее представление типов и поиск имён
🔴 Василий Куликов, ведущий разработчик в Яндексе. Рассмотрит на примере мьютекса основные проблемы реализации примитивов синхронизации во фреймворке userver
🔴 Алексей Веселовский, Senior-C++-разработчик в Align Technology. Поделится свежим докладом о сани...
📍 27 июля в Москве и Ереване пройдет прикладная конференция С++ Zero Cost Conf 2024.
Практикующие эксперты из крупнейших компаний выступят с докладами, поделятся реальными кейсами и метриками:
🔴 Антон Полухин, руководитель группы разработки общих компонент в Яндекс Go. Обсудит новости со встречи Международного комитета по стандартизации языка С++ в Сент-Луисе и расскажет о планах на C++26 и C++29
🔴 Константин Владимиров, руководитель отдела компиляторов и средств разработки в Syntacore. Расскажет об интересных C++-решениях в генераторе llvm-snippy
🔴 Юрий Минаев, архитектор C++-анализатора в PVS-Studio. Поговорит о семантике C++ и покажет, как устроены таблица символов, внутреннее представление типов и поиск имён
🔴 Василий Куликов, ведущий разработчик в Яндексе. Рассмотрит на примере мьютекса основные проблемы реализации примитивов синхронизации во фреймворке userver
🔴 Алексей Веселовский, Senior-C++-разработчик в Align Technology. Поделится свежим докладом о сани...
➡️ Размещающий new
C++ Learning 👩💻
• Размещающий new - это альтернативный синтаксис для оператора new, который размещает объект в уже выделенной памяти. Он используется для настройки vtable и вызова конструктора.• Размещающий new полезен для написания кастомных аллокаторов, оптимизирующих производительность. Он позволяет выделить большой блок памяти и последовательно размещать объекты без пробелов, что уменьшает фрагментацию памяти и снижает накладные расходы.C++ Learning 👩💻
➡️ Ответвление с использованием декларации переменной
C++ включает синтаксическое сокращение для одновременного объявления переменной и разветвления по её значению.
C++ Learning 👩💻
C++ включает синтаксическое сокращение для одновременного объявления переменной и разветвления по её значению.
• Это выглядит как декларация переменной внутри условия оператора if или while, и одновременное присваивание ей значения.C++ Learning 👩💻
🔥 Освой разработку ПО на QT и ОС Аврора
Пройди тест из 20 вопросов и проверь, насколько хорошо nы знаешь язык C++ и готов освоить QT и ОС Аврора .
Сможешь сдать — пройдёшь на продвинутый онлайн-курс "Разработка прикладного ПО на Qt и ОС Аврора" от OTUS.
👉 ПРОЙТИ ТЕСТ: https://clck.ru/3BhEZf
Пройди тест из 20 вопросов и проверь, насколько хорошо nы знаешь язык C++ и готов освоить QT и ОС Аврора .
Сможешь сдать — пройдёшь на продвинутый онлайн-курс "Разработка прикладного ПО на Qt и ОС Аврора" от OTUS.
👉 ПРОЙТИ ТЕСТ: https://clck.ru/3BhEZf
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru➡️ Квалификаторы ссылки в методах
C++ Learning 👩💻
• C++11 позволяет перегружать методы с использованием квалификатора ссылки, который находится в той же позиции, что и cv-квалификаторы (const и volatile квалификаторы).• Это влияет на то, какой метод будет вызван для объекта, в зависимости от типа this, – является ли он lvalue или же rvalue.C++ Learning 👩💻
🌎Программист, говори с миром на одном языке!
👉Узнайте больше о возможностях С на бесплатном вебинаре онлайн-курса «Программист С» — «Unicode в С»: регистрация
На вебинаре мы:
— подробнее познакомимся с интернациональным стандартом символов Unicode и низкоуровневым устройством его кодировок
— развеем несколько популярных мифов в области кодировок и посмотрим на инструменты языка C для работы с юникодом.
✅Занятие будет полезно всем программистам с опытом.
👉После вебинара вы сможете продолжить обучение на курсе по спеццене, в том числе, в рассрочку
erid: LjN8KAAuV
👉Узнайте больше о возможностях С на бесплатном вебинаре онлайн-курса «Программист С» — «Unicode в С»: регистрация
На вебинаре мы:
— подробнее познакомимся с интернациональным стандартом символов Unicode и низкоуровневым устройством его кодировок
— развеем несколько популярных мифов в области кодировок и посмотрим на инструменты языка C для работы с юникодом.
✅Занятие будет полезно всем программистам с опытом.
👉После вебинара вы сможете продолжить обучение на курсе по спеццене, в том числе, в рассрочку
erid: LjN8KAAuV
➡️ Перегрузка ++ и --
C++ Learning 👩💻
• В C++ имя функции пользовательских операторов — это сам символ оператора.• Унарные и бинарные операторы (- и -) различаются по количеству аргументов.• Унарные операторы инкремента и декремента (++, --) имеют одинаковую сигнатуру.• Для различия постфиксных операторов ++ и -- используется фиктивный аргумент int.• Постфиксные операторы ++ и -- принимают фиктивный аргумент int как флаг для компилятора.C++ Learning 👩💻
🚀Успейте за ростом рынка IoT!
👉Узнайте больше об internet of things на бесплатном вебинаре онлайн-курса «IoT Developer» - «Учет энергоресурсов в платформе ThingsBoard»: регистрация
На занятии рассмотрим решение учета энергоресурсов (вода, газ, э/э, тепло), познакомимся с реализацией демо проекта на платформе ThingsBoard:
1. Подключение устройств
2. Создание сущностей
3. Разработка цепочек правил
4. Разработка дашборда
🤝Понравится урок — продолжите обучение на курсе по спеццене и даже в рассрочку!
erid: LjN8KXW8x
👉Узнайте больше об internet of things на бесплатном вебинаре онлайн-курса «IoT Developer» - «Учет энергоресурсов в платформе ThingsBoard»: регистрация
На занятии рассмотрим решение учета энергоресурсов (вода, газ, э/э, тепло), познакомимся с реализацией демо проекта на платформе ThingsBoard:
1. Подключение устройств
2. Создание сущностей
3. Разработка цепочек правил
4. Разработка дашборда
🤝Понравится урок — продолжите обучение на курсе по спеццене и даже в рассрочку!
erid: LjN8KXW8x
➡️ Функции в качестве параметра шаблона
C++ Learning 👩💻
• Параметром шаблона могут быть конкретные целые числа.• Параметром шаблона также могут быть конкретные функции.• Это позволяет компилятору встраивать вызовы для этих функций в коде инстанцированного шаблона для более эффективного выполнения.• В примере ниже, функция memoize() в качестве шаблонного параметра получает функцию и вызывает эту функцию для новых значений аргумента.• Старое сохранённое значение аргумента берётся из кеша.C++ Learning 👩💻