Полезные материалы по всему, что может быть полезно плюсовику/сишнику.
21 фича современного C++, которые вам обязательно пригодятся
Итак, судьба снова свела вас с C++, и вы поражены его возможностями с точки зрения производительности, удобства и выразительности кода. Но вот незадача: вы теряетесь в этом многообразии замечательных новых фич и, как следствие, затрудняетесь сходу определить, что из этого всего вам действительно стоило бы взять на вооружение в своей повседневной работе по написанию кода. Не стоит расстраиваться, в этой статье вашему вниманию будут представлены 21 новая фича современного C++, которые помогут сделать ваш проект лучше, а работу над ним легче.
https://www.vishalchovatiya.com/21-new-features-of-modern-cpp-to-use-in-your-project/
#cpp #programming
👉 @cpp_lib
Константин Владимиров — Память как концепция в гетерогенных системах
Память это то, что программисты на C++ хорошо знают и полагают, что имеют над ней контроль. Но много ли известно о памяти на GPU?
Внезапно многие привычные концепции из мира C++ ломаются, а создание single-source слоев абстракции (таких как SYCL) требует введения большого количества странных для CPU понятий и терминов. И все это влияет на производительность. В докладе Константин рассмотрит память, как ее понимают в C++ и как ее понимают для графики, и покажет много примеров на SYCL.
источник
#cpp #programming
👉 @cpp_lib
❓Какие подводные камни появились в последнем стандарте языка C?
Проведем обзор стандарта C23 на открытом уроке 20 июля в 20:00 в OTUS. Вебинар приурочен к старту онлайн-курса «Программист С».
🔥Занятие проведет Андрей Кравчук, преподаватель курса и программист C/C++ с опытом 14 лет.
На вебинаре разберем:
— устаревшие и удалённые возможности языка
— новые языковые конструкции
— изменения в стандартной библиотеке
⚡️Занятие подойдёт:
— действующим разработчикам и авторам библиотек на языке C
— новичкам, интересующимся развитием низкоуровневых языков программирования
В результате вы получите знания о новых выразительных возможностях и новых подводных камнях языка C.
После вебинара курс можно приобрести в рассрочку.
👉Зарегистрируйтесь, чтобы принять участие: https://otus.pw/11Lu/
🚀 Познакомься с теорией шардирования!
📌 Шардирование - это метод горизонтального масштабирования баз данных, при котором большие объемы данных разбиваются на мелкие фрагменты (шарды). Каждый шард содержит подмножество данных и может храниться и обрабатываться независимо от других шардов.
🗓 16 июля в 18:00 по МСК пройдет бесплатный открытый урок по теории шардирования!
Чему ты научишься:
- узнаешь, что такое шардирование и в каких ситуациях его следует применять
- поймешь, в чем разница между партиционированием и шардированием
- разберешься с rebalancing, resharding и consistent/randezvous hashing
➡️ Ссылка на открытый урок ⬅️
Пишем Аим для Counter-Strike на C++
источник
#cpp #programming
👉 @cpp_lib
Вывод double, также известный как самая сложная задача в компьютерных науках
Несколько лет назад я обнаружил этот вопрос на StackOverflow: как напечатать double с полной точностью, используя cout? Я был потрясен, увидев, насколько неправильными были большинство ответов, поэтому тогда я ответил сам. Недавно я снова наткнулся на него и решил написать этот пост в блоге, объясняя проблемы с некоторыми из лучших ответов.
https://www.zverovich.net/2023/06/04/printing-double.html
#cpp #programming
👉 @cpp_lib
Integer Conversions and Safe Comparisons in C++20
https://www.cppstories.com/2022/safe-int-cmp-cpp20/
#cpp #programming
👉 @cpp_lib
Санитайзер адресов continue_on_error | Pure Virtual C++ 2023
Ошибки безопасности памяти в C++ продолжают оставаться одной из главных проблем. В этом докладе мы описываем continue_on_error - новую технологию, реализованную в среде выполнения Address Sanitizer. Компилятор и новая среда выполнения позволяют разработчику найти четко определенный набор (возможно, скрытых) ошибок безопасности памяти, имеет ноль ложных срабатываний и легко добавляется к существующим тестовым ресурсам. Это создает новую проверяемую сборку для C и C++.
https://www.youtube.com/watch?v=i8_RfDAEjMs
#cpp #programming
👉 @cpp_lib
❓Хотите начать разрабатывать смарт-контракты?
Начните с бесплатного урока - присоединияйтесь 13 июля в 20:00 мск к вебинару OTUS и создайте свой первый смарт-контракт!
👨🎓В рамках онлайн-курса «Solidity Developer» пройдет открытый урок «Введение в смарт-контракты». Вместе с экспертом мы сначала разберем, как развивались смарт-контракты, а затем перейдем от теории к практике — разработаем смарт-контракт.
🚩На вебинаре мы:
- Погрузимся в увлекательную историю смарт-контрактов, иллюстрируя их зарождение и развитие до сегодняшнего дня
- Рассмотрим области применения смарт-контрактов, представив реальные примеры их использования в различных сферах
- Создадим и задеплоим наш первый смарт-контракт с помощью онлайн-инструмента Remix IDE
- Обсудим известные случаи взлома смарт-контрактов, рассмотрим основные уязвимости и способы их устранения.
🔥После вебинара вы сможете продолжить обучение на курсе, доступном в рассрочку.
✔️Для участия зарегистрируйтесь https://otus.pw/GxXk/
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. 2Ranym62bDA
Курс по C++ и SFML
Простые программы на C++
В статье мы напишем пару простейших программ на C++ и посмотрим, как происходит их компиляция.
https://ps-group.github.io/ps1/lesson_cpp_1
Знакомство с SFML. Компьютерная графика.
SFML (Simple Fast Multimedia Library) — это C++ библиотека для мультимедиа. В статье мы воспользуемся SFML для рисования фигур в окне.
https://ps-group.github.io/ps1/lesson_sfml_1
Основной цикл программы. Анимация.
В статье мы освоим паттерн Game Loop, а также научимся обрабатывать события мыши и клавиатуры.
https://ps-group.github.io/ps1/lesson_sfml_2
Обработка событий. Интерактив.
В статье вы освоите обработку событий мыши и клавиатуры в мультимедийных программах и научитесь писать функции на языке С++
https://ps-group.github.io/ps1/lesson_sfml_3
Соглашения о кодировании на C++
Соглашения о кодировании для курса по C++/SFML
https://ps-group.github.io/ps1/cxx_coding_style
Комплексные задачи. Котик следует за мышкой
В этой практике вы начнёте по шагам решать комплексные задачи, двигаясь от математической модели и псевдокода к готовой программе
https://ps-group.github.io/ps1/sfml_workshop_1
Массовые столкновения
На этом занятии вы научитесь программировать игры уровня Бильярда или Arkanoid
https://ps-group.github.io/ps1/sfml_workshop_2
Ещё одна практика на SFML
На этом занятии вы освоите более гибкие приёмы работы с SFML: виртуальную камеру, рисование произвольных фигур, проверку столкновения
https://ps-group.github.io/ps1/sfml_workshop_3
Основной проект курса: 2D игра
Цель проекта - самостоятельно написать комплексную программу, клон небольшой игры
https://ps-group.github.io/ps1/project
Задание | Спецификация проекта в виде MindMap
Чтобы составить видение проекта-игры, нужно визуализировать. Сделать это поможет MindMap.
https://docs.google.com/document/d/1Ki6DlbhDrZHskC6LED88FHeX8m-Se3-MrTpjwKYlcDk/edit?usp=sharing
Задание | План проекта в виде RoadMap
Чтобы справиться с известным проектом в известные сроки, нужно составить план действий. Сделать это поможет RoadMap.
https://docs.google.com/document/d/1zdW81SLmgVf3ZXyMwXkOXxIwOzBzkTTvi4TTMLdUw_E/edit
Пишем клон игры PacMan слой за слоем
В этой коллекции примеров слой за слоем на C++/SFML воссоздаётся урезанный клон игры PacMan
https://github.com/ps-group/sfml-packman
Схема оценки проекта-игры
В таблице записаны критерии оценки и примеры оценивания различных игр
https://docs.google.com/spreadsheets/d/1n7OzeQEDujPDboW3dFn4M4iXhcPvlCR7FQbPRSE4jwM/edit?usp=sharing
#cpp #programming
👉 @cpp_lib
60 антипаттернов для С++ программиста
Перед вами обновлённая коллекция вредных советов для C++ программистов, которая превратилась в целую электронную книгу. Всего их 60, и каждый сопровождается пояснением, почему на самом деле ему не стоит следовать. Всё будет одновременно и в шутку, и серьёзно. Как бы глупо ни смотрелся вредный совет, он не выдуман, а подсмотрен в реальном мире программирования.
https://pvs-studio.ru/ru/blog/posts/cpp/1053/
#cpp #programming
👉 @cpp_lib
👨💻 Хотите использовать C на практике и решать задачи Middle-уровня?
Ответьте на 20 вопросов, чтобы проверить достаточно ли ваших навыков, чтобы работать с языком С и попасть на курс — «Программист С» от OTUS.
На полном курсе вы изучите основы архитектуры процессора и памяти, научитесь писать сетевые приложения, а также сможете понять, как С используется в играх и веб-приложениях
👉 Пройти тест — https://otus.pw/guki/
Реклама. Информация о рекламодателе на сайте www.otus.ru.
❓Хотите освоить востребованный и универсальный C++? Сейчас подходящее время!
⚡️В OTUS стартует специализация «C++ Developer». Обучение будет проходить последовательно: на первой ступени вы освоите принципы программирования, синтаксис языка, библиотеки, многопоточность, сетевое взаимодействие, а на второй изучите БД, принципы проектирования ПО, попробуете C++ в машинном обучении и многом другом.
🌟Преподаватели и ментор — ведущие C++ разработчики, которые будут давать фидбэк и отвечать на вопросы во время обучения. После 10 месяцев живых вебинаров, практики и работы над 2 выпускными проектами вы сможете претендовать на позицию Middle C++ разработчика с зарплатой от 90 тыс. рублей.
👇Начните учиться на курсе бесплатно: оставьте заявку на курс и получите открытый урок в подарок:
https://otus.pw/t2d1/
Ускорение вставки отсортированного (или в основном отсортированного) списка ключей в 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
👥 Митап Yandex Infrastructure в Новосибирске
У Яндекса огромная инфраструктура хранения и обработки данных, многие ее составляющие — собственные разработки компании. За все эти технологии, процессы и продукты отвечает команда инфраструктуры.
Приглашаем вас на митап Yandex Infrastructure, где мы расскажем о некоторых из наших разработок:
1. Платформа для работы с данными (YDB):
Поговорим о том, как упрощается разработка клиентского приложения, когда на уровне платформы гарантирована атомарность вычитания данных из потока событий в топики и запись в таблицы.
2. Arc — собственная система контроля версий для монорепозитория:
Расскажем, зачем нужен монорепозиторий, как устроена внутренняя система контроля версий в Яндексе и виртуализация файловой системы.
3. Система сборки Ya make:
Разработка в монорепозитории большой компании предъявляет к системе сборки интересные и иногда неожиданные требования — расскажем, как мы со всем этим справляемся и с какими компромиссами нам приходится жить.
Ждем как интересующихся продуктами Open source, так и продвинутых разработчиков, сетевых инженеров, DevOps- и SRE-специалистов.
📍 Когда: 27 июля, 18:00.
📍 Где: Новосибирск (площадка уточняется).
📍 Регистрация — по ссылке.
Регистрируйтесь и добавляйте событие в календарь.
До встречи!
Изменение порядка параметров типа шаблона C++ для удобства использования и вывод типа из будущего
https://devblogs.microsoft.com/oldnewthing/20230609-00/?p=108318
#cpp #programming
👉 @cpp_lib
Разработка кросплатформенного приложения на Qt с использованием нейросетей, обученных на tensorflow
Раз уж Вы заинтересовались данной статьёй, то ожидается, что Вы умеете программировать на с++ с использованием библиотеки Qt и разрабатывать нейросети на Python c использованием библиотеки tensorflow.
Соответственно остаётся только понять как использовать обученные Вами нейросетевые модели в Qt проектах.
https://habr.com/ru/articles/719888/
#cpp #programming
👉 @cpp_lib
Поговорим о слоях абстракции C++ - Инбал Леви - CppNow 2023
Слои абстракции - один из самых сильных инструментов, которые мы используем для разработки программного обеспечения.
Этому учат на бакалавриате CS, и это широко используется в повседневном рабочем процессе разработки программного обеспечения.
В ходе этого выступления мы дадим определение и изучим слои абстракций C++, а также выявим ошибки прошлого и основные правила, в том числе на примерах из особенностей последних стандартов C++23 и C++26. Наконец, мы рассмотрим предложение по работе комитета ISO C++ WG21.
источник
#cpp #programming
👉 @cpp_lib
Хотите стать востребованным разработчиком? Изучите Golang! С его простым и понятным синтаксисом вы сможете создавать надежные и эффективные программные решения, и работать над проектами где требуется высокая производительность и масштабируемость.
Начните погружение в Go c пробного урока курса от OTUS, на котором 👨💻 Владимир Балун, ведущий разработчик в Ozon расскажет об актуальности и перспективах этого языка.
Какие темы затронем на встрече:
— что происходит в IT-бизнесе
— в какие проекты может сейчас попасть Golang-разработчик
— чем хорош этот язык программирования
— какие продукты создаются ТОЛЬКО на Go
— почему Go имеет отличные перспективы в индустрии.
👉 Регистрируйтесь и начните обучение бесплатно — https://otus.pw/T1Cd/
Реклама. Информация о рекламодателе на сайте www.otus.ru.
❓Хотите освоить язык C и создавать свои умные IoT-решения?
Пройдите тест по C и проверьте свои знания.
🔥Сможете ответить — пройдёте на курс "Программист С" от OTUS по специальной цене + получите доступ к открытым урокам по программированию на С.
👉 ПРОЙТИ ТЕСТ: https://otus.pw/Dj80/Нативная интеграция. Информация о продукте www.otus.ru
Yandex Infrastructure Meetup
🗓 13 июля в Казани пройдёт офлайн-митап Yandex Infrastructure.
На нем расскажем, как мы создаём и развиваем платформу для разработчиков Яндекса. Поговорим про устройство сети Yandex Cloud, про вычислительную платформу Яндекса Nirvana и технологию SRv6.
Митап будет полезен backend-разработчикам, DevOps, SRE и сетевым инженерам, а также всем тем, кому интересны продукты open source.
➡️ Участие бесплатное.
Регистрируйтесь по ссылке.
Стандартные атрибуты в C и C++, Timur Doumler - ACCU 2023
Этот доклад представляет собой углубленный экскурс по стандартным атрибутам, доступным в настоящее время в языках программирования C и C++.
https://www.youtube.com/watch?v=EpAEFjbTh3I
#cpp #programming
👉 @cpp_lib
CppCon 2022 Lightning Talks
How to Win at Coding Interviews - David Stone
Best Practices Every C++ Programmer Needs to Follow - Oz Syed
C++20 - A New Way of Meta-Programming? - Kris Jusiak
MP: Template Meta-Programming in C++ - Kris Jusiak
The Future of C++ - Neil Henderson
Dependency Injection for Modern C++ - Tyler Weaver
Cute Approach for Polymorphism in C++ - Liad Aben Sour Asayag
Finding the Average of 2 Integers - Tomer Vromen
The Lambda Calculus in C++ Lambdas - David Stone
find-move-candidates in Cpp - Chris Cotter
Все видео доступны на youtube
#cpp #programming
👉 @cpp_lib
❓Хотите начать разрабатывать смарт-контракты?
Начните с бесплатного урока - присоединияйтесь 13 июля в 20:00 мск к вебинару OTUS и создайте свой первый смарт-контракт!
👨🎓В рамках онлайн-курса «Solidity Developer» пройдет открытый урок «Введение в смарт-контракты». Вместе с экспертом мы сначала разберем, как развивались смарт-контракты, а затем перейдем от теории к практике — разработаем смарт-контракт.
🚩На вебинаре мы:
- Погрузимся в увлекательную историю смарт-контрактов, иллюстрируя их зарождение и развитие до сегодняшнего дня
- Рассмотрим области применения смарт-контрактов, представив реальные примеры их использования в различных сферах
- Создадим и задеплоим наш первый смарт-контракт с помощью онлайн-инструмента Remix IDE
- Обсудим известные случаи взлома смарт-контрактов, рассмотрим основные уязвимости и способы их устранения.
🔥После вебинара вы сможете продолжить обучение на курсе, доступном в рассрочку.
✔️Для участия зарегистрируйтесь https://otus.pw/GxXk/
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. 2RanykkkR4k
Создание классического MINESWEEPER (Сапёр ) на C++ и SFML
Code https://github.com/Kofybrek/Minesweeper
источник
#cpp #programming
👉 @cpp_lib
The evolution of statements with initializers in C++
https://www.sandordargo.com/blog/2022/10/26/statements-with-initializers-part-1-conditionals
#cpp #programming
👉 @cpp_lib
Просто о шаблонах C++
Статья написана с целью максимально просто, на живых примерах рассказать о шаблонах C++.
Как создатели языка пришли к концепции шаблонов? Почему шаблонов не стоит бояться? Как они помогают сделать код чище? Почему стоит изучать шаблоны уже сегодня, несмотря на существующий к ним скепсис?
Статья пытается ответить на все эти и многие другие вопросы.
https://habr.com/ru/articles/599801/
#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.
Регистрация по ссылке