Библиотека 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
加入频道
🔢 Как научиться решать сложные задачи

Нам может не даваться решение сложных математических задач по многим причинам: от стереотипов до негативного школьного опыта. К счастью, это можно исправить. В карточках перечислили лучшие на наш взгляд книги, которые помогут понять, полюбить и подтянуть математику.

Ещё больше книг, а также курсы, игры, методики и приложения — в нашей статье 👈
🎉🎉 Выпуск среды разработки Qt Creator 12

Qt Creator (ранее известная под кодовым названием Greenhouse) — свободная IDE для разработки на С, C++, JavaScript и QML. Разработана Trolltech (Digia) для работы с фреймворком Qt. Включает в себя графический интерфейс отладчика и визуальные средства разработки интерфейса как с использованием QtWidgets, так и QML. Поддерживаемые компиляторы: GCC, Clang, MinGW, MSVC, Linux ICC, GCCE, RVCT, WINSCW.

В состав Qt Creator входит передовой инструмент Qt Designer, позволяющий создавать внешний вид окна приложения, добавляя и перетаскивая элементы по аналогии Windows Forms в Visual Studio. В качестве систем сборки используются qmake, cmake и autotools

Что было добавлено?

🔹 Интегрированный обозреватель компиляторов
🔹 Отладка и профилирование CMake
🔹 Запись экрана

Полный список всех изменений

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

#новость
🎯✏️ Реализация #embed для C и C++

Речь пойдет о реализации директивы бинарного включения данных в gcc и clang для C и C++.

Автор опишет способ, которым реализовал #embed для GCC и Clang, и стиль работы, который использовал для ранней версии #embed. Будет использоваться общедоступная версия #embed, которая предложена Clang, в качестве инструмента для отображения одного из используемых методов, позволяющих получить гарантированное ускорение для подмножества случаев, которые имеют значение (например, инициализация массива char/signed char/unsigned char).

Изучить материал

#гайд
👬👬 Параллельное программирование

00:34 — Основы исполнения кода
01:09 — Основы операционных систем
02:01 — Параллельное и конкурентное исполнение кода
02:42 — Примитивы синхронизации
03:45 — Основы архитектуры компьютера
04:06 — Атомики
04:51 — Проблемы параллельного программирования
05:23 — Продвинутые примитивы синхронизации
06:02 — Паттерны параллельного программирования
06:46 — Ввод-вывод
07:15 — Барьеры памяти
08:03 — Продвинутая архитектура компьютера
08:57 — Алгоритмы синхронизации
09:56 — Lock-free структуры данных
10:30 — Wait-free структуры данных
10:45 — Как изучать параллельное программирование

#видео
🤔 очередной #дайджест по С++

🔺 Книга Beginning C++23: From Beginner to Pro — путь программирования на языке C++ с основ и пошаговых примеров, которые помогут вам стать опытным программистом

🔺 Создание своего терминала на C++ и Qt — минималистичный терминал для Linux на основе Qt 5 и qtermwidget5

🔺 Фильтруем логи санитайзеров и valgrind на примере приложения с Qt — решение периодически встречающейся проблемы кода на С и C++ с утечками памяти и неопределенным поведением

🔺 SObjectizer Tales — построению программ на основе акторной модели с помощью SObjectizer

🔺 Осенний митап по стандартам ISO C++ — что вошло в C++26 (pack indexing, linalg, debugging); что вот-вот войдет, но требуют небольших доработок (contracts, reflection)
Что из следующего вернет новый элемент в конце контейнера?
Anonymous Quiz
31%
push_back
4%
front
37%
back
27%
pop_back
❗️Мы запускаем серию исследований — и вы можете нам в этом помочь!

«Библиотека программиста» выпустит несколько статей, в которых мы проведем полноценные исследования.

Помогите нам выбрать интересные темы: может быть, вы давно хотели узнать, как изменилась зарплата у тех, кто релоцировался? Или гадаете, сколько лет нужно, чтобы стать миддлом?

Присылайте интересующие вас темы в комментарии — интересные мы возьмем в работу и поделимся с вами результатами 💙
Please open Telegram to view this post
VIEW IN TELEGRAM
👁Помогите «Библиотеке программиста» лучше узнать свою аудиторию

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

Пожалуйста, ответьте на несколько вопросов — это поможет нам делать более полезные и интересные посты!

Первая часть опроса 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
🫡 💩 Для обработки строк потоки в C++ могут быть медленными

Потоки могут быть на удивление медленными. Например, если вы хотите анализировать числа, то эта процедура C++ близка к наихудшему возможному выбору с точки зрения производительности:

std::stringstream in(mystring);
while(in >> x) {
sum += x;
}
return sum;


Проведем эксперимент — возьмем строки, содержащие символ «%», и создадим новые, в которых символ % заменен на %25, но остальная часть строки остается неизменной.

Простая конструкция строки выглядит следующим образом:

std::string string_escape(const std::string_view file_path) {
std::string escaped_file_path;
for (size_t i = 0; i < file_path.length(); ++i) {
escaped_file_path += file_path[i];
if (file_path[i] == '%')
escaped_file_path += «25»;
}
return escaped_file_path;
}


Оптимизированная версия с использованием потоков выглядит следующим образом:

std::string stream_escape(const std::string_view file_path) {
std::ostringstream escaped_file_path;
for (size_t i = 0; i < file_path.length(); ++i) {
escaped_file_path << file_path[i];
if (file_path[i] == '%')
escaped_file_path << «25»;
}
return escaped_file_path.str();
}


Продолжить изучение

#гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
🚶‍♂️🚏 Embox отправляется на Vostok

Эта статья — своеобразный (расширенный) анонс того, что Embox перенесен на микроконтроллеры еще одного производителя микроэлектроники в РФ. Речь идет о платформе Vostok базирующейся на микроконтроллерах ГК «Элемент».

«Восток» базируется на идее построения экосистемы вокруг отечественной электроники через предоставление пользователям готовых программно-аппаратных решений. Причем эти решения ориентированы на очень широкий класс пользователей: от обучения школьников робототехнике (уже разработан аналог ARDUINO) и до промышленной автоматики и роботов.

Embox:

🔹 открытый проект,
🔹 позволяет пользоваться экосистемой Linux,
🔹 позволяет привычно разрабатывать,
🔹 позволяет получить оптимизированную под конкретные цели систему,
🔹 имеет поддержку в РФ.

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

#почитать