Библиотека C/C++ разработчика | cpp, boost, qt
20.9K subscribers
1.57K photos
41 videos
16 files
3.74K links
Все самое полезное для плюсовика и сишника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/d6cd2932

Наши каналы: https://yangx.top/proglibrary/9197

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
加入频道
Очередной #дайджест по C++:

✍️ Работа с «Ягодой» для новичков: подключение пяти микроконтроллеров ESP32 к микрокомпьютеру Raspberry Pi 4 Model B по SPI
Данная статья создана с ознакомительной целью и служит рекомендацией по работе с Raspberry Pi 4 Model B ("Ягода"), WEMOS WiFi & Bluetooth ESP32 ("ESP32") при настройки Serial Peripheral Interface (SPI).

✍️ Сохранение древовидной структуры в Visual Studio с CMake или создание папок в проекте
О проблемах CMake и их решениях.

✍️ Исследуем защиту программ на практике
Программист рассказывает о защите своего продукта.

✍️ Как написать хороший генератор
В интернете невероятное количество статей о том "как написать свой генератор на С++20", но почти все они сводятся к новичковым хело вордам и почти ни одной статьи о том как написать хороший генератор. Автор статьи захотел это исправить.
Какое мероприятие по разработке вы посещали последним и будете ли на нем в следующий раз?
#интерактив

Кстати, на нашем сайте есть раздел с анонсами мероприятий по программированию.
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы

☕️Java

Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🧠C++

Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие профильные каналы

Библиотека фронтендера
Библиотека шарписта
Библиотека Go разработчика
Библиотека мобильного разработчика
Библиотека хакера
Библиотека питониста
Библиотека devops’a
Библиотека тестировщика
Библиотека пхпшника

💼Каналы с вакансиями

Вакансии по питону, Django, Flask
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии по C#, .NET, Unity
Вакансии по Go
Вакансии по PHP, Symfony, Laravel
Вакансии по DevOps & SRE
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
Memento

Memento — это поведенческий паттерн проектирования, который позволяет сохранять и восстанавливать внутреннее состояние объекта без нарушения инкапсуляции. Он полезен, например, когда вам нужно реализовать функциональность отмены/возврата действий или сохранения состояния объекта для последующего восстановления.
#код
В чем различия между delete и delete[]?

delete предназначен для уничтожения объектов, память под которые выделена при помощи new(). delete[] для объектов выделенных при помощи оператора new[]().

При неправильном использовании оператора delete (например, delete вместо delete[]) результат будет: undefined behavior.
Больше вопросов с собеседований в нашем канале.
#вопросы_с_собоседований
Недостатки корутин в С++

Этот пост предназначен для освещения некоторых рисков, связанных с перемещением базы кода в сторону сопрограмм. Автор считает, что продолжающееся неправильное использование корутин может привести к более небезопасным и медленным программам.

Читать пост
Константные методы

В C++ ключевое слово const имеет различное значение в зависимости от контекста. Оно может быть применено к методам классов для указания, что метод не будет изменять состояние объекта, на котором он вызывается. Такие методы называются «константными методами».

Когда вы вызываете константный метод для объекта класса, компилятор гарантирует, что внутри этого метода вы не будете изменять члены данных объекта, кроме членов, объявленных как mutable (они могут изменяться внутри константных методов).
#код
«Библиотека программиста» ищет девушек, работающих в IT — разработке, тестировании, информационной безопасности и других направлениях

Мы проводим новое исследование, посвященное специфике работы женщин в IT — от сложностей и недостатков в работе до гендерных стереотипов.

Пройдите короткий опрос — он анонимный и займет не более 10 минут вашего времени.

Ссылка тут.
Наследование

Наследование — это механизм, который позволяет создавать новые классы, используя уже существующие классы как основу. Подклассы наследуют свойства и методы своих базовых классов и могут добавлять собственные свойства и методы, а также переопределять или дополнять поведение унаследованных методов.

Существует два основных типа наследования: публичное и защищенное. Публичное наследование означает, что все общедоступные члены базового класса остаются общедоступными и в производном классе. Защищенное наследование делает общедоступные члены базового класса защищенными в производном классе. Также существует приватное наследование, которое делает общедоступные члены базового класса приватными в производном классе.
#код
Очередной #дайджест по C++:

🤖 Подводные камни C++. Решаем загадки неопределённого поведения, ч. 2
Продолжение известной статьи по неопределенному поведению.

🤖 Первые новинки C++26: итоги летней встречи ISO
На недавней встрече комитет C++ активно взялся за C++26. Уже есть первые новинки, которые нас будут ждать в готовящемся стандарте C++.

🤖 Как я вошёл в клуб бага 323
Это история о баге, который бы заставил вас рвать на себе волосы. Из-за такого бага вы можете подумать: «Но это невозможно, должно быть, компилятор сломался, других вариантов нет!»

🤖 Создание вашего собственного массива
Пост фокусируется на дизайнерских решениях.

🤖 Внутри STL: конструктор shared_ptr и make_shared
Variadic templates

Variadic templates — это механизм, позволяющий определять шаблоны функций и классов, принимающие переменное количество аргументов. Он позволяет писать более гибкий и универсальный код, способный работать с разным числом параметров.

С помощью вариативных шаблонов вы можете определить функции или классы, принимающие любое количество аргументов определенных типов. Это особенно полезно, например, при написании функций форматирования строк, обобщенных контейнеров и других ситуаций, когда количество аргументов может варьироваться.
#код
Рецензия на книгу: полное руководство по стандартным алгоритмам C++

Подробное ревью на каждый абзац книги со ссылкой на скачивание в конце. Пользуйтесь!

Читать рецензию
Семантика перемещения

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

Семантика перемещения решает проблемы, связанные с копированием больших данных или ресурсов, что может быть очень затратным по времени и памяти. Вместо копирования данные «перемещаются» из одного объекта в другой, при этом исходный объект теряет право владения этими данными. Это осуществляется с использованием специальных методов и операторов, таких как конструктор перемещения (move constructor) и оператор перемещения (move assignment operator).
#код
Что выведет код сверху?

Ответ:
10 99 40 99

В этой программе мы меняем местами определенные значения в двух векторах с помощью iter_swap.
#вопросы_с_собеседований
🥷Это путь воина

Напоминаем, что «Библиотека программиста» запустила два новых канала специально для специалистов по C++ и тех, кто хочет ими стать👨‍🏫

Подписывайтесь:
👉Библиотека собеса по C++ — тут мы готовимся к интервью
👉Библиотека задач по C++ — тут решаем задачи, проходим тесты и изучаем код
Указатель на функцию

Указатель на функцию в C++ представляет собой переменную, которая хранит адрес функции. Это позволяет вызывать функции через указатель и передавать их как аргументы другим функциям.

Указатели на функции могут быть использованы для создания таблиц функций, динамической загрузки библиотек, а также для реализации различных паттернов программирования, таких как обратный вызов (callback) и динамическое определение функциональности.
#код
Официальный репозиторий симулятора архитектуры компьютерной системы gem5.

Открыть репозиторий

Кстати, у нас есть канал с вопросами с собеседований по С++. Подписывайтесь!
👨‍💻 Большой рассказ про C++

C++ стал популярен за счёт своей скорости: его считают идеальным балансом между временем выполнения и временем реализации задачи.

В видео для джунов описан путь C++ программиста, а для разработчиков постарше — много информации про статический анализ, компиляторы, скорость выполнения и при чём тут вообще Rust.

Смотреть видео