Библиотека C/C++ разработчика | cpp, boost, qt – Telegram
Библиотека C/C++ разработчика | cpp, boost, qt
19.3K subscribers
2.06K photos
67 videos
16 files
4.36K links
Все самое полезное для плюсовика и сишника в одном канале.

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

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

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17

#WXSSA
Download Telegram
🍬 Статья: Почему функции rand и lrand48 из glibc годятся только для Тетриса

Автор статьи разбирает, почему rand, lrand48 и random из glibc — это не просто «не очень хорошие» генераторы, а полностью непригодные для любых вычислений алгоритмы, и что с этим делать.

🍿 Ключевые моменты статьи:

rand и lrand48 из glibc проваливают специализированные статистические тесты (TestU01, PractRand)
• классические критерии Пирсона и Колмогорова-Смирнова не выявляют скрытые решётчатые структуры и битовые зависимости в генераторах
• поточные шифры (ChaCha, AES) обгоняют minstd и LCG 80-х не только по качеству, но и по производительности

Основной фокус — наглядные самописные статистические тесты (gap test, birthday spacings), которые показывают дефекты glibc-генераторов без «чёрного ящика». Плюс практические рекомендации: какие ГПСЧ брать в C++11 и выше, чего ждать от C++26, и почему random_device работает не так, как вы думаете.

😸 Главный инсайт: если ваш генератор не прошёл BigCrush и PractRand на 32 ТиБ — выбрасывайте без раздумий.

📖 Читать статью...


📍Навигация: ВакансииЗадачиСобесы

Библиотека C/C++ разработчика

#константная_правильность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3🌚1
🍺 Coroutine и scope: как co_await разрывает привычную модель блочной видимости

Корутины в C++20 нарушают базовую интуицию о scope: локальные переменные могут пережить } функции. Разбираем, как это реализовано.


🍪 Проблема стека

Обычная функция: локальные переменные в стеке, уничтожаются при return. Корутина может быть приостановлена (co_await) и возобновлена позже — стека уже нет. Куда деваются локальные переменные?

Task example() {
int x = 10; // где живёт x после co_await?
co_await someAwaitable();
std::cout << x; // x должен быть доступен!
}


⚡️ Coroutine frame в heap

Компилятор переписывает корутину в конечный автомат. Все локальные переменные, которые живут через точку приостановки, переносятся в coroutine frame — объект в куче:

// Псевдокод того, что генерирует компилятор:
struct __example_frame {
int x; // из стека → в heap
int __state; // текущая точка возобновления
promise_type __promise;
};


‼️ Scope остаётся лексическим

Видимость имён не меняется — x виден только внутри функции. Меняется место хранения: не стек, а heap. Деструкторы по-прежнему вызываются при выходе из scope — но «выход» теперь может произойти через co_return или уничтожение корутины.

💡 Корутины не нарушают лексическую область видимости — они нарушают связь между scope и стеком. Локальные переменные остаются «локальными» по видимости, но физически мигрируют в heap.


📍Навигация: ВакансииЗадачиСобесы

Библиотека C/C++ разработчика

#константная_правильность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🤔1
😎 Топ-вакансий для C++ разработчиков за неделю

С разработчик — Удалёнка

Middle / Senior Разработчик C/C++ — Удалёнка/гибрид (Новосибирск)

Senior C Developer — от 350 000 ₽ Удалёнка

✍️ Еще больше топовых вакансий — в нашем канале C++ jobs

📍Навигация: ВакансииЗадачиСобесы

Библиотека C/C++ разработчика

#буст
👍1😁1
🛡️ C++26: безопасность наконец становится частью языка

Устали от багов с памятью, которые ломают прод в самый неподходящий момент? C++26 меняет правила игры:

▶️ Contracts (контракты) — пишешь pre: прямо в объявлении функции, и компилятор/рантайм сам проверяет предусловия
▶️ Standard Library Hardening — встроенная проверка индексов и указателей в STL, больше никаких тихих UB из operator[]
▶️ Consteval как защита от UB — компилятор буквально запускает код как виртуальную машину и диагностирует неопределённое поведение на этапе компиляции
▶️ Observable checkpoints — новый способ разбить код на «эпохи» с гарантированным наблюдаемым поведением между ними
▶️ Erroneous behaviour — новая категория между UB и well-defined, которая даёт компилятору меньше свободы для «опасных» оптимизаций

📺 Больше подробностей в видео

Навигация: ВакансииЗадачиСобесы

Библиотека C/C++ разработчика

#линкер_рекомендует
👍11😁3
💡 __has_include() — это не проверка заголовка, а запрос к препроцессору

Если думал, что __has_include(<vector>) проверяет «существует ли файл на диске». Это не так. Директива работает на уровне препроцессора и взаимодействует с поисковыми путями компилятора, а не с файловой системой напрямую.

🔍 Как это работает

__has_include — это расширение препроцессора, стандартизированное в C++17. Когда компилятор встречает:

#if __has_include(<optional>)
# include <optional>
#endif


— препроцессор проходит по своим include-путям (-I, системные пути, -isystem) и проверяет, разрешится ли имя файла в один из них. Это тот же механизм, что используется при обычном #include, но без реальной вставки содержимого.

🏝 Два синтаксиса — два алгоритма поиска

__has_include(<header>)   // поиск только в системных путях
__has_include("header") // поиск сначала в локальных, затем в системных


Это зеркалит поведение обычных #include <> и #include "". Разница критична при наличии локальных заголовков с теми же именами, что и системные.

❗️ Ловушка: наличие != доступность

Файл может быть найден препроцессором, но при этом не компилироваться на данной платформе. Например, <windows.h> физически присутствует в MinGW, но использование некоторых его частей невозможно без нужного таргета. __has_include вернёт 1, но код всё равно сломается.

‼️ Практический вывод

Используй __has_include для определения наличия необязательных зависимостей, но всегда дополняй проверкой версии или feature-теста (__cpp_lib_optional). Это защитит от ситуации «файл есть, фича недоступна».


📍Навигация: ВакансииЗадачиСобесы

Библиотека C/C++ разработчика

#под_капотом
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4👍41
This media is not supported in your browser
VIEW IN TELEGRAM
👍 На курсе по контролируемой разработке AI-агентов мы будем разбирать ровно то, о чём говорит Владислав в голосовом, но уже в формате системной практики.

📅 Старт курса — 20 апреля.

Если хотите разобраться, как строить управляемые агентные системы:
➡️ Присоединяйтесь.

P.S. С первого занятия будет практика: код и разбор реальных ошибок, а не только теория.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2
🍔 Реферальный рекрутинг в IT

Соискатели с рекомендацией получают оффер в 4 раза чаще, чем те, кто откликается в холодную. В 2026 году реферальный найм — уже не лайфхак, а отдельный канал трудоустройства. Разбираемся, как он устроен и как им воспользоваться.

👉 Продолжить читать

📍Навигация: ВакансииЗадачиСобесы

Библиотека C/C++ разработчика

#свежак
😁1
😜 Истории от PVS-Studio: как мы избавились от сотен мёртвых комментариев в кодовой базе

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

🍦 Читать дальше

📍Навигация:
ВакансииЗадачиСобесы

Библиотека C/C++ разработчика

#свежак
😁3👍1
📰 Свеженькое из мира C++

Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.

😎 Интересное:

7 грязных, но рабочих способов найти IT-работу в 2026 году — полезные хаки для поиска работы
Почему функции rand и lrand48 из glibc годятся только для Тетриса — разбор, почему rand, lrand48 и random из glibc — это «не очень хорошие» генераторы
Coroutine и scope — разбор, как работают области видимости в корутинах
C++26: безопасность наконец становится частью языка — нововведения в новый стандарт касающиеся безопасности
__has_include() — расширение препроцессора, для проверки доступности заголовочных файлов

🔹📍Навигация: ВакансииЗадачиСобесы

Библиотека C/C++ разработчика

#свежак
1😁1
🍩 Вопрос к подписчикам

В этот праздничный день отдохнём от задач. Вместо этого попросим вас написать пожелания по постам. Возможно каких-то тематик вам не хватает, или темы, которые вы хотели бы бы увидеть на канале. Критика тоже приветствуется😊

❗️Попросим учесть, что тематики можно было поместить в пост. Это пожелание.

P.S. Милых дам поздравляем с праздником 😼❤️

📍Навигация: ВакансииЗадачиСобесы

Библиотека C/C++ разработчика

#междусобойчик
4😁2
💥 Открытый вебинар | ИИ-агенты в продакшене: от хайпа к деньгам

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

Полина Полунина, руководитель AI-направления Альфа-Банка, расскажет честно:

▪️ Чем агент отличается от «просто GPT с промптом» и когда бизнесу достаточно обычного LLM
▪️ 3 реальных кейса из корпоративной среды: что взлетело, а что нет
▪️ Live-демо работающего агента
▪️ ТОП-5 граблей, на которые наступают команды при внедрении

⏱️ 10 марта в 19:00 (МСК)

🎁 Участники получат промокод на скидку на самый полный курс по ИИ-агентам

👉 Регистрируйся
😁1