Библиотека C/C++ разработчика | cpp, boost, qt
Все самое полезное для плюсовика и сишника в одном канале. Как запустить своего ии-агента: https://clc.to/tvpmDQ По рекламе: @tproger_sales_bot Обратная связь: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17 #WXSSA
Ko'proq ko'rsatish📈 Telegram kanali Библиотека C/C++ разработчика | cpp, boost, qt analitikasi
Библиотека C/C++ разработчика | cpp, boost, qt (@cppproglib) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 16 819 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 7 686-o'rinni va Rossiya mintaqasida 39 072-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 16 819 obunachiga ega bo‘ldi.
25 Oktabr, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -40 ga, so‘nggi 24 soatda esa -7 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 10.25% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 4.49% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 1 724 marta ko‘riladi; birinchi sutkada odatda 756 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 2 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent c++, навигация, компилятор, удалёнка, developer kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Все самое полезное для плюсовика и сишника в одном канале.
Как запустить своего ии-агента: https://clc.to/tvpmDQ
По рекламе: @tproger_sales_bot
Обратная связь: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
#W...”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 26 Oktabr, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
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 сентября — приходи на онлайн-трансляцию, где мы расскажем подробнее о практических курсах и ответим на все вопросы. После вебинара пройдет обзорная лекция про системное программирование и роль языка С. Регистрация — здесь.
Как выбрать инструмент? Как работать с AI-агентами? Как проверять сгенерированный код? Или как вообще встроить нейросети в свой процесс?Собираем вопросы для вебинара. Самые залайканные разберём в первую очередь 🔥 Пишите, что действительно интересно ⬇️
