Библиотека C/C++ разработчика | cpp, boost, qt
Все самое полезное для плюсовика и сишника в одном канале. Как запустить своего ии-агента: https://clc.to/tvpmDQ По рекламе: @tproger_sales_bot Обратная связь: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17 #WXSSA
Show more📈 Analytical overview of Telegram channel Библиотека C/C++ разработчика | cpp, boost, qt
Channel Библиотека C/C++ разработчика | cpp, boost, qt (@cppproglib) in the Russian language segment is an active participant. Currently, the community unites 16 810 subscribers, ranking 7 721 in the Technologies & Applications category and 39 130 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 16 810 subscribers.
According to the latest data from 27 October, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -56 over the last 30 days and by -4 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 11.03%. Within the first 24 hours after publication, content typically collects 4.54% reactions from the total number of subscribers.
- Post reach: On average, each post receives 1 854 views. Within the first day, a publication typically gains 764 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 2.
- Thematic interests: Content is focused on key topics such as c++, навигация, компилятор, удалёнка, developer.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Все самое полезное для плюсовика и сишника в одном канале.
Как запустить своего ии-агента: https://clc.to/tvpmDQ
По рекламе: @tproger_sales_bot
Обратная связь: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
#W...”
Thanks to the high frequency of updates (latest data received on 28 October, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
make -j8, а часть проекта собирается последовательно. Проверьте, как Makefile запускает сборку в подкаталогах. Обычный вызов make -C subdir может потерять доступ к общему механизму распределения задач — jobserver.
В разборе рекурсивного make показано, как передать управление правильно:
subproject: ; $(MAKE) -C subdir
$(MAKE) использует тот же исполняемый файл и позволяет вложенной сборке участвовать в общем лимите параллельных задач. В однострочном рецепте команда отделяется от цели точкой с запятой.
Если сборка плохо загружает процессор, найдите прямые вызовы make в рецептах. Замените их на $(MAKE) и проверьте предупреждения jobserver unavailable. Параллелизм задайте при запуске верхнего уровня.
➡️ Навигация: База знаний • Задачи • Собеседования • Вакансии
🐸 Библиотека программиста<PropertyGroup>
<EnableVCToolsVersionDiscovery>true</EnableVCToolsVersionDiscovery>
<VCToolsVersion>14.43.34604</VCToolsVersion>
</PropertyGroup>
Номер здесь — пример конкретной версии. Если нужного набора нет в текущей установке, Visual Studio проверит другие установки. Раньше поиск был ограничен ситуацией, когда подходящего toolset в текущей установке вообще не было.
Это позволяет обновлять редактор и отладчик отдельно от перехода на новый компилятор.
Настройка не скачивает отсутствующий набор инструментов. Нужная версия должна быть установлена, в том числе на машине CI. И для воспроизводимости одной фиксации MSVC мало: версии SDK, зависимостей и параметры сборки тоже нужно учитывать.
🔗 Как включить поиск закреплённого toolset
#под_капотом
📍 Навигация: Вакансии • Задачи • Собесыcl /std:c++23 /EHsc main.cpp
Прежнее написание /std:c++23preview пока работает как псевдоним, но помечено устаревающим и будет удалено в одном из следующих обновлений.
Здесь легко смешать два статуса. Название режима языка больше не содержит preview, но сам набор инструментов 14.52 на момент анонса остаётся RC. Он доступен через Visual Studio 2026 Insiders; стабильный выпуск ожидается в ноябре.
Есть и отдельная настройка для вычислений из cmath во время компиляции. Одного /std:c++23 недостаточно: поддержка по умолчанию выключена и включается флагом /Zc:cmath.
cl /std:c++23 /Zc:cmath /EHsc main.cpp
При обновлении проверьте проект на конкретной версии toolset. Выбор режима стандарта сам по себе не обещает поддержку любой возможности языка и библиотеки.
🔗 Что изменилось в MSVC 14.52 RC
#под_капотом
📍 Навигация: Вакансии • Задачи • Собесы💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью. 💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.📍 Разница в цене — почти 50 тысяч рублей. Можно освоить больше, не выходя за рамки запланированного бюджета. А если тебе интереснее Python, алгоритмы, backend или DevOps — выбирай другую пару курсов из каталога. Акция действует до 31 октября включительно ⏳ ⏮️ Пора прокачать свой стек
std::promise<int> promise;
auto future = promise.get_future();
promise.set_value(42);
int answer = future.get();
// future больше не содержит общего состояния
std::future рассчитан на одного получателя. Его нельзя скопировать, зато можно переместить и передать право получить результат другому участку кода. После get() повторный вызов недопустим.
Если получателей несколько, до получения результата можно вызвать share():
std::promise<int> promise;
auto first = promise.get_future().share();
auto second = first;
promise.set_value(42);
std::cout << first.get() << second.get();
Копии shared_future обращаются к одному общему состоянию. Для обычного типа T его get() возвращает const T&, поэтому значение можно читать повторно без создания отдельной копии результата.
Обратная сторона: извлечь move-only объект перемещением из такой константной ссылки не получится. А время жизни полученной ссылки связано с общим состоянием.
Обещание доступности результата также не делает сам изменяемый объект потокобезопасным.
🔗 Разбор future и shared_future от Реймонда Чена
#под_капотом
📍 Навигация: Вакансии • Задачи • Собесы💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью. 💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.Вместе курсы стоят 108 000 ₽, но по акции оба обойдутся в 59 000 ₽. Экономия — 49 000 ₽ 🔥 Интересуют Python и ИИ или алгоритмы и архитектура? Можно выбрать любые два курса из каталога. Акция действует до 31 октября включительно ⏳ ⏬ Собрать свой учебный билд
int get_value(const std::vector<int>& values,
std::size_t index)
pre(index < values.size())
{
return values[index];
}
Читатель заголовочного файла сразу видит условие вызова. Но наличие pre ещё не гарантирует, что программа остановится при неправильном индексе.
У контрактов несколько вариантов выполнения: проверку можно проигнорировать, сообщить о нарушении и продолжить либо завершить программу. Доступные режимы и их выбор зависят от реализации.
Если индекс пришёл из запроса пользователя, ожидаемую ошибку нужно обработать обычным кодом до вызова функции. Нельзя рассчитывать, что контракт обязательно вернёт клиенту понятный ответ или не допустит опасного доступа.
Условия контрактов также не должны менять состояние программы: проверка может вообще не выполниться.
C++26 ещё не финализирован. Для эксперимента из статьи нужны GCC 16 и специальные флаги поддержки контрактов.
🔗 Разбор pre, post и режимов проверки
#под_капотом
📍 Навигация: Вакансии • Задачи • Собесы1000. Единичный бит один, но для записи нужны четыре позиции. Поэтому std::popcount(8u) возвращает 1, а std::bit_width(8u) — 4.
У семёрки 111 оба результата равны 3. Это случайное совпадение, которое легко скрывает ошибку при проверке только такого значения. Для нуля обе функции возвращают 0.
popcount подходит для подсчёта установленных флагов, bit_width — для минимальной ширины двоичного представления ненулевого значения. Эти функции доступны с C++20 и работают с беззнаковыми целочисленными типами.
Функции для работы с битами
📍 Навигация: Вакансии • Задачи • Собесы
#под_капотомstd::to_chars пишет символы в переданный буфер и возвращает ptr сразу после результата. Завершающий нулевой символ он не добавляет.
В тесте буфер заполнен X. После записи числа 123 в нём осталось 123XXXXX. Строку получили из диапазона [first, result.ptr), а не поиском первого нуля. Это важно, если дальше API ожидает C-строку.
Сначала проверяйте result.ec. Если места мало, вернётся std::errc::value_too_large, а содержимое диапазона не определено. Не считайте его частично готовым результатом.
Целочисленные перегрузки доступны с C++17. Оба сценария — достаточный и маленький буфер — реально проверены.
Контракт to_chars
📍 Навигация: Вакансии • Задачи • Собесы
#под_капотомstd::mdspan из C++23 связывает данные, размеры и способ преобразования индексов в смещение.
Для буфера 10, 20, 30, 40, 50, 60 раскладка layout_right идёт по строкам, layout_left — по столбцам. В проверенном примере индекс [1,1] даёт соответственно 50 и 40. Запись через один вид меняет тот же буфер, который виден другому.
Размеры и layout не управляют временем жизни данных. В этом примере обычный accessor работает с указателем на std::array, поэтому массив должен жить дольше представлений. Поддержку C++23 нужно проверить и у компилятора, и у стандартной библиотеки.
Устройство mdspan в P0009
📍 Навигация: Вакансии • Задачи • Собесы
#под_капотом18 сентября — приходи на онлайн-трансляцию, где мы расскажем подробнее о практических курсах и ответим на все вопросы. После вебинара пройдет обзорная лекция про системное программирование и роль языка С. Регистрация — здесь.
