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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
加入频道
lmdeploy

LMDeploy — это набор инструментов для сжатия, развертывания и обслуживания LLM.

Открыть страницу
Сколько лет опыта по вашему должен иметь синьор?
#интерактив
RCU (Read-Copy-Update)

RCU (Read-Copy-Update) — это механизм синхронизации доступа к данным в многопоточных приложениях. Он позволяет избежать блокировок при чтении данных, делая копию для чтения и обновляя оригинал после того, как все чтения завершены.

RCU особенно полезен, когда чтение данных происходит гораздо чаще, чем запись.

В примере мы сначала берем rcu_read_lock, чтобы защитить чтение foo. В другом потоке происходит модификация foo с помощью rcu_assign_pointer, которая делает копию данных, а оригинал удаляется после synchronize_rcu.
Таким образом чтение в первом потоке происходит без блокировок и избегает конфликтов с изменением данных в другом потоке. RCU гарантирует, что указатель foo будет виден как старое значение в первом потоке.
#код
Очередной #дайджест по С++:

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

🤖 AgentBench
Комплексный тест для оценки LLM как агентов.

🤖 fuzzing
Учебники, примеры, обсуждения, исследовательские предложения и другие ресурсы, связанные с фаззингом.

🤖 Моделирование трубы в реальном времени
Создание полноценной симуляции.
std::size

std::size — это функция из стандартной библиотеки C++, которая возвращает размер контейнера или массива.

Она определена в заголовочном файле, работает со всеми стандартными контейнерами (vector, deque, list, array и др.) и с массивами всех типов, позволяя получить размер контейнера или массива в runtime.
#код
Изучите C++: введение для начинающих

В этом коротком посте автор знакомит читателей с основами C++ и помогает заложить прочную основу для начала пути в программировании.

Читать статью
🎓💼 ТОП-9 не самых очевидных компаний для стажировки в ИТ

Везде просят опыт работы... Но где его взять? Как раз об этом сейчас и расскажем!

🔗Читать статью
🔗Зеркало
Как тестировать закрытые методы?

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

Перегрузка операторов позволяет определить для объектов классов встроенные операторы, такие как +, -, * и т. д. Для определения оператора для объектов своего класса, необходимо определить функцию, название которой содержит слово operator и символ перегружаемого оператора.

В этом примере в классе Counter определен оператор сложения, цель которого сложить два объекта Counter. Текущий объект будет представлять левый операнд операции. Объект, который передается в функцию через параметр counter, будет представлять правый операнд операции.
#код
Исследование различий между C++ и C: почему C++ преобладает

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

Читать статью
Libcurl

Libcurl — это библиотека для передачи файлов с множественным протоколом, которая поддерживает огромное множество протоколов. Также Libcurl поддерживает сертификаты SSL, HTTP POST, HTTP PUT, загрузку FTP, загрузку на основе форм HTTP и многое другое.

В этом примере создается объект CURL, затем вызывается curl_easy_init для его инициализации. Затем устанавливаются опции CURLOPT_URL и CURLOPT_WRITEFUNCTION с помощью curl_easy_setopt.
— CURLOPT_URL указывает URL-адрес для выполнения GET запроса.
— CURLOPT_WRITEFUNCTION указывает функцию обратного вызова для записи данных ответа.

Затем вызывается curl_easy_perform для выполнения запроса. После завершения запроса вызывается curl_easy_cleanup для очистки объекта CURL, а затем curl_global_cleanup для очистки глобальных ресурсов libcurl.

Результат выполнения этого кода — вывод содержимого страницы в стандартный вывод.
#код
Очередной #дайджест по С++:

✍️ Создаем проект STM32 C++ FreeRTOS в vscode для очень маленьких
Пошаговое создание проекта для новичков.

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

✍️ HOMEd: A почему «d»? Чтобы никто не догадался
Про умный дом и его возможности.

✍️ Написание компилятора C в 500 строк Python
Сложно ли это? Да, даже если отказаться от многих функций. Но, в то же время, это ужасно интересно, а результат оказался на удивление функциональным и несложным для понимания!
Какой фреймворк для работы изучали последний раз?
#интерактив
Сериализация

Сериализация — это процесс преобразования данных, таких как объекты, структуры или контейнеры, в последовательность байтов, чтобы их можно было сохранить или передать через сеть, а затем восстановить обратно в исходное состояние. Это позволяет сохранять состояние программы или обмениваться данными между разными программами или системами.

Сериализация имеет большое значение, например, когда вы хотите сохранить состояние вашего приложения для долгосрочного хранения или передать данные между клиентом и сервером в распределенной системе. Она позволяет избежать необходимости ручного форматирования данных для записи и их последующего разбора.
#код
Как подсчитать количество элементов в std::list?

Чтобы подсчитать количество элементов в std::list, можно использовать следующие способы:

1. Вызвать метод size() самого списка. Он вернет количество элементов.
2. Проитерировать список циклом и считать элементы.
3. Воспользоваться алгоритмом std::distance, передав ему начало и конец списка.
4. Применить алгоритм std::count_if с условием, которое всегда истинно.
#вопросы_с_собеседований
⚒️ ТОП-27 плагинов для Visual Studio Code в 2023

Предлагаем список лучших расширений для VS Code в 2023 году: продуктивность, окрашивание сниппетов, контроль версий, форматирование, линтинг и отладка.

🔗Читать статью
🔗Зеркало
Карл Окерблом: краткий обзор Трейси Профайлер

Карл кратко рассказывает о профилировании инструментов Tracy Profiler. Также он делится впечатлениями после внедрения его в работу; несколько приятных сюрпризов и неровностей на дороге, с которыми он столкнулся на своем пути.

Смотреть выступление
Что вы считаете самой большой своей неудачей за всю карьеру?
#интерактив
Начать курс «Алгоритмы и структуры данных» с вводной части можно уже сегодня бесплатно

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

НАЧАТЬ С ДЕМО-ДОСТУПА

▪️ бессрочный доступ

▪️ 47 видеолекций

▪️ 150 практических заданий

▪️ бессрочная поддержка в чате студентов

▪️развернутая обратная связь по всем домашним заданиям

🔹Подробная программа – https://proglib.io/w/b26c360b

Переходите, оставляйте заявку на пробную версию и знакомьтесь с самым харизматичным спикером – Степаном Мацкевичем. Он определенно получил приз зрительских симпатий от наших студентов🥰
Кортеж — tuple

Как и pair, tuple — коллекция значений различных типов данных конкретного размера.

В некоторых случаях вместо tuple удобнее использовать std::array. Это обычный массив с некоторыми функциями стандартной библиотеки C++, который был добавлен в C++11.
#код
Очередной #дайджест по C++:

✍️ Форматирование текста на C++ старым и новым способом
Какой из способов форматирования лучше в плане производительности?

✍️ Когда private, но очень хочется public
Если нельзя, но очень хочется, то можно.

✍️ Промышленные контроллеры, Linux и только C++. Часть 1
Об автоматизации производства.

✍️ Визуализация алгоритмов стандартной библиотеки C++
Автору пришла идея отделить визуализацию алгоритма от его исполнения, тогда можно будет визуализировать любой алгоритм.

✍️ Основы C++: Указатели и Итераторы
Статья о базовых понятиях языка.