Ускорение вставки отсортированного (или в основном отсортированного) списка ключей в std::map или другой упорядоченный ассоциативный контейнер
https://devblogs.microsoft.com/oldnewthing/20230522-00/?p=108226
#cpp #programming
👉 @cpp_lib
Многопоточность и Thread Pool в C++
За время работы в сфере IT у меня появилась своя собственная библиотека на языке C++, которая медленно, но верно обрастает различными полезными модулями. Не все включаемые в нее модули написаны мною с нуля, но я всегда стараюсь так или иначе адаптировать их под свои нужды. Сегодня у меня появилось непреодолимое желание поделиться с вами некоторыми фрагментами моей библиотеки.
https://habr.com/ru/articles/738250/
#cpp #programming
👉 @cpp_lib
Как делать не надо: C++ велосипедостроение для профессионалов
источник
#cpp #programming
👉 @cpp_lib
Коллеги, приглашаем вас на вебинар, где Валерий Харисов расскажет о том, как искать и находить неочевидные утечки исходного кода и содержащихся в них секретов.
🕚 29 июня в 15:00 (МСК)
Leak-Search — сервис сканирования публичных репозиториев на наличие утечек исходного кода, конфигураций и конфиденциальных данных компании.
Разработан и поддерживается командой по ИБ группы компаний QIWI
👨💻На вебинаре рассмотрим:
- как программный код и секреты компании попадают в сеть
- какие векторы утечек часто остаются вне фокуса
- сколько это может стоить бизнесу
- и главное, как не стать жертвой утечки данных
Все на реальных кейсах крупнейших российских и зарубежных компаний, утечки которых были найдены с помощью Leak-Search, либо известны публично.
Для участия на вебинаре зарегистрируйтесь по ссылке
https://link.webinar.fm/register/55392181/7xyczjsv
🕚Ждем вас 29 июня в 15:00 (МСК)
❗️На вебинаре вы получите доступ к пробному периоду❗️
🔥Почему сегодня язык GO завоевывает все большую популярность и становится наиболее востребованным среди разработчиков и одним из самых распространенных в мире? Возможно, вы уже задумывались над тем, чтобы начать изучать GO. Если да, то у нас для вас отличная новость. В OTUS стартует курс Golang Developer Basic!
📣26 июня в 20:00 (мск) приглашаем на открытый урок курса “За что разработчики любят GO?”, на котором вы сможете познакомиться с преподавателем и программой курса, а также во время занятия мы приоткроем завесу причин популярности GO и обсудим:
— почему язык GO так популярен в разработке веб-сервисов и приложений;
— особенности GO и нововведения;
— в каких сферах разработки он используется.
👉🏻Для участия зарегистрируйтесь https://otus.pw/x3bSs/
После урока вы сможете понять подходит ли Вам язык GO и программа курса.
Не упустите возможность протестировать формат обучения!
Возможны разные способы оплаты и рассрочка .
Нативная интеграция подробная информация о продукте на сайте www.otus.ru
Массивы в C++
Продолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специальных. Это четвертая статья из серии, первые три, посвященные перегрузке в C++, находятся здесь, здесь и здесь.
Эта статья посвящена массивам. Массивы можно отнести к наиболее древним слоям C++, они пришли из первых версий C. Тем не менее, массивы вошли в объектно-ориентированную систему типов C++, хотя и с определенными оговорками. Программисту важно знать об этих особенностях, чтобы избежать потенциальных ошибок. В статье также рассмотрено другое наследие C – тривиальные типы и неинициализированные переменные. Часть нововведений C++11, С++14, С++17 затрагивают работу с массивами, все эти новые возможности также подробно описаны. Итак, попробуем рассказать о массивах все.
https://habr.com/ru/articles/495444/
#cpp #programming
👉 @cpp_lib
Ссылки и ссылочные типы в C++
Продолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специальных. Это пятая статья из серии, список предыдущих статей приведен в конце в разделе 6. Серия ориентирована на программистов, имеющих определенный опыт работы на C++. Эта статья посвящена ссылкам и ссылочным типам в C++.
Термин «ссылка» широко используется и в обыденной жизни, в компьютерных и других науках и поэтому его смысл сильно зависит от контекста использования. В языках программирования под ссылкой понимают небольшой объект, главная задача которого обеспечить доступ к другому объекту, расположенному в другом месте, имеющему другой размер и т.д. Объекты ссылки удобно использовать на стеке, они легко копируются, что позволяет получить доступ к объекту, на который эта ссылка ссылается, из разных точек кода. В той или иной форме ссылки поддерживаются во всех языках программирования. В ряде языков программирования, таких как C#, Java, Pyton и многих других, ссылки, по существу, являются концептуальным ядром.
https://habr.com/ru/articles/646005/
#cpp #programming
👉 @cpp_lib
👨💻 Yandex Cloud, Yandex 360 и Yandex Infrastructure — это точки притяжения талантливых инженеров
Приходите на прямой эфир, чтобы узнать про ключевые вызовы команды.
На встрече расскажем, как мы развиваем инфраструктуру Яндекса, строим публичную облачную платформу и виртуальный офис для клиентов.
📍20 июня 2023 г., в 16:00
Эфир будет полезен бэкенд-разработчикам и SRE, которым интересно узнать, какие задачи мы решаем и кого мы ищем.
Регистрируйтесь по ссылке!
Multithreading in C++ (потоки, блокировки, задачи, атомарные операции, очереди сообщений)
https://www.youtube.com/watch?v=z6M5YCWm4Go
#cpp #programming
👉 @cpp_lib
Что такое Low Latency C++? Доклад Тимура Думлера.
Часто говорят, что C++ - отличный язык для систем с низкой задержкой, таких как высокочастотная торговля, обработка звука и видеоигры. Но что именно мы подразумеваем под "низкой задержкой"? Чем это отличается от "высокой производительности"? И что делает C++ отличным языком для этого? Этот доклад - попытка ответить на эти вопросы. Мы рассмотрим примеры использования низкой задержки в этих различных отраслях, установим их общие черты и различия, обсудим типичные проблемы в системах с низкой задержкой, а также методы C++ для их преодоления.
источник
#cpp #programming
👉 @cpp_lib
🫵 Пройди тест по C++ и проверь свои знания.
Ответишь — пройдешь на продвинутый курс "C++ Developer. Professional" от OTUS по специальной цене + получишь запись мастер-класса от преподавателя курса.
👉 ПРОЙТИ ТЕСТ: https://otus.pw/Glo5/Нативная интеграция. Информация о продукте www.otus.ru
С++ (1 курс, весна 2023) Мещерин И.С. Часть 2
C++ 8. std::function / std::bind / std::any
C++ 9. unions / small strings optimization
C++ 10. std::variant / std::visit
C++ 11. std::launder. std::visit impl. Инстанцирование шаблонов. SFINAE, enable_if.
С++ 12. Концепты / constexpr function
C++ 13. Objects as non-type template parameters / consteval / std::is_constant_evaluated
источник
#cpp #programming
👉 @cpp_lib
Статья о std::jthread
https://www.nextptr.com/tutorial/ta1588653702/stdjthread-and-cooperative-cancellation-with-stop-token
#cpp #programming
👉 @cpp_lib
💪 Пройди тест по C++ и проверь свои знания.
Ответишь — пройдешь на продвинутый курс "C++ Developer. Professional" от OTUS по специальной цене + получишь запись мастер-класса от преподавателя курса🎁 .
⛔️ ПРОЙТИ ТЕСТ: https://otus.pw/acjs/
Успей присоединится к июньской группе!Нативная интеграция. Информация о продукте www.otus.ru
29 июня в Екатеринбурге пройдёт бесплатный митап Yandex Infrastructure.
На нём расскажем про приватное контейнерное облако, про использование простаивающих ресурсов во внутреннем облаке Яндекса и про YTsaurus — платформу для обработки и хранения больших данных.
Встреча будет полезна для backend-разработчиков, DevOps- и SRE-инженеров.
Начало мероприятия в 18:00.
Регистрация по ссылке
⚡️Начните применять C на практике и решайте задачи Middle-уровня!
3 июля в 20:00 мск пройдет открытый урок «Встраиваем экспертную систему в программу на С» в OTUS. На этом вебинаре вы поймете, как объединить обычный код на С и экспертную систему.
✨Занятие пройдет в рамках онлайн-курса «Программист С» и будет полезно разработчикам различных встраиваемых систем: подсистем умного дома, роботизированных и других систем.
На встрече разберем:
— Что такое экспертная система
— Когда она используется
— На чем создается экспертная система
— Язык разработки экспертных систем и библиотеку CLIPS
Не упустите возможность сделать первый шаг в освоении языка! А продолжить сможете на курсе, доступном в рассрочку.
👉Для участия зарегистрируйтесь: https://otus.pw/z28t/
Нативная интеграция. Информация о продукте www.otus.ru
На грани между exceptions и std::expected
Посмотрев на новый тип из грядущего стандарта под названием std::expected я пришел к интересному на мой взгляд мнению, что можно немного переосмыслить его суть и сделать несколько ближе к исключениям.
В данной статье хочу немного рассказать о небольшом исследовании реализации expected, в которой используется стирание типа ошибки.
https://habr.com/ru/articles/737408/
#cpp #programming
👉 @cpp_lib
Рефакторинг с использованием C++17 std::optional
Существует множество ситуаций, когда вам нужно выразить, что что-то является "необязательным" - объект, который может содержать значение или нет. У вас есть несколько вариантов реализации такого случая, но в C++17 появился, пожалуй, самый полезный способ: std::optional.
Сегодня я подготовил один пример рефакторинга, где вы можете научиться применять эту новую возможность C++17.
https://www.cppstories.com/2018/04/refactoring-with-c17-stdoptional/
#cpp #programming
👉 @cpp_lib
🟡 Пройдите тест по С++
— Ответьте на 20 вопросов и проверьте, насколько хорошо вы знаете язык. Сможете сдать — пройдёте на продвинутый онлайн-курс "C++ Developer. Professional" со скидкой!
🚀На этом курсе вы:
- Научитесь прикладному применению стандартов C++11 / C++14 / C++17.
- Освоите асинхронное и многопоточное программирование.
- Получите глубокое представление о шаблонной магии и паттернах проектирования.
Наглядным результатом вашей работы станет выпускной проект.
- Возможна оплата курса в рассрочку.
👉🏻 ПРОЙТИ ТЕСТ ОНЛАЙН-КУРСА ПО C++Нативная интеграция. Информация о продукте www.otus.ru
Использование классов enum в качестве битовых масок.
Перечисления являются основной частью языков C и C++ и повсеместно используются для моделирования логически различных состояний в программных системах. Однако могут возникнуть ситуации, когда необходимо смоделировать набор состояний, не исключающих друг друга. Есть несколько других способов написать это, включая определение битовых полей, использование std::bitset
или даже std::vector<bool>
, но вы также можете использовать для этого перечисления, рассматривая их как битмаски.
https://voithos.io/articles/enum-class-bitmasks/
#cpp #programming
👉 @cpp_lib
В крайности – Fold-выражения
Выражения сложения существуют в C++ начиная с C++17 и существенно влияют на то, как мы обращаемся с переменными шаблонами. Когда-то давно я писал о выражениях сложения в рамках серии о метапрограммировании, но сегодня мы рассмотрим крайние случаи использования выражений сложения.
Прежде чем мы начнем, сделаем важную оговорку: В этой статье примеры кода показывают использование вариативных шаблонов с аргументами, передаваемыми по значению, без их пересылки. Это сделано для того, чтобы упростить их и сосредоточиться на идее, лежащей в основе примеров.
https://cppsenioreas.wordpress.com/2023/05/22/into-the-extreme-fold-expressions/
#cpp #programming
👉 @cpp_lib
⌨️ Как C++ программисту использовать Copilot и ChatGPT в ежедневных задачах по разработке?
Расскажем на открытом уроке от OTUS 20 июня в 20:00.
Что будет на занятии:
▫️Copilot plugin к VSCode для языка C++;
▫️Cоздание функций по описанию;
▫️Генерация boilerplate кода;
▫️Refactoring и code review с помощью ChatGPT.
Это открытое занятие пройдёт в рамках специализации "С++ Developer" и будет полезно программистам на C++, которые хотят повысить свою продуктивность и программистам на других языках.
После пробного урока вы сможете приобрести онлайн-курс любым удобным для вас способом.
👉 Успевайте записаться на урок: https://otus.pw/qjtQ/
Нативная интеграция. Информация о продукте www.otus.ru
🤔 Знаете ли вы, что изменив подход к проектированию IT-систем можно радикально уменьшить поверхность атаки? До такой степени, что ваши разработки приобретут кибериммунитет и станут практически неприступными для большинства существующих и ещё неизвестных кибератак даже без дополнительной защиты?
😲 21 июня на онлайн-конференции Kaspersky Cyber Immunity Developers Night специалисты Лаборатории Касперского поделятся 20-летним опытом создания систем secured-by-design. За это время сформировался развитый технологический стек, методология и паттерны проектирования, полезные разработчикам различного профиля. Обсудим:
👉 Существуют ли "безопасные" и "небезопасные" языки программирования?
👉 Как реализовать многоэтапный контроль качества, отладку и экспериментальное управление в целях безопасности?
👉 Как применять GPU при разработке современных графических интерфейсов и использовать аппаратное ускорение?
👉 Какие кибериммунные решения уже существуют в автопроме и IoT, и как они работают?
🤙 Вход после регистрации
Live++ (универсальный инструмент горячей перезагрузки C++), работающий на Xbox Series X
источник
#cpp #programming
👉 @cpp_lib
С++ (1 курс, весна 2023) Мещерин И.С. Часть 1
C++ 1. std::map, std::list
C++ 2. unordered_map, allocator_traits и allocator aware containers
C++ 3. Перегрузка new/delete, Alignments and bit fields, Scoped allocators, std::move
C++ 4. Реализация std::move, rvalue and lvalue + Семинар
С++ 5. Perfect forwarding and Universal references
C++ 6. xvalues, RVO, copy elision, move_if_noexcept
C++ 7. Лямбда-функция
источник
#cpp #programming
👉 @cpp_lib
🔥 Познакомьтесь с Boost — мощным инструментом для С++ разработчиков!
🔵 14 июня в 20:00 приглашаем вас на открытый урок «Знакомство с Boost».
Вебинар пройдет в преддверии запуска онлайн-курса «C++ Developer. Professional» в OTUS.
На встрече вы:
— Узнаете, как подключать библиотеку Boost в проект с помощью CMake,
— Познакомитесь с различными библиотеками Boost
— Научитесь эффективно использовать эти библиотеки.
🟠Не упустите возможность расширить свои знания и навыки в разработке на C++! Для продолжения обучения оплатить курс можно любым удобным способом.
👉 Пройдите тест, чтобы зарегистрироваться на вебинар: https://otus.pw/tVGu/Нативная интеграция. Информация о продукте www.otus.ru