Автор статьи разбирает, почему
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
Forwarded from Библиотека задач по C++ | тесты, код, задания
Forwarded from Библиотека задач по C++ | тесты, код, задания
Что выведет этот код?
Anonymous Quiz
6%
Ошибка компиляции
10%
42
5%
Неопределённое поведение
79%
7
1%
0
😁6
Корутины в C++20 нарушают базовую интуицию о scope: локальные переменные могут пережить
} функции. Разбираем, как это реализовано.Обычная функция: локальные переменные в стеке, уничтожаются при
return. Корутина может быть приостановлена (co_await) и возобновлена позже — стека уже нет. Куда деваются локальные переменные? Task example() {
int x = 10; // где живёт x после co_await?
co_await someAwaitable();
std::cout << x; // x должен быть доступен!
}Компилятор переписывает корутину в конечный автомат. Все локальные переменные, которые живут через точку приостановки, переносятся в
coroutine frame — объект в куче:// Псевдокод того, что генерирует компилятор:
struct __example_frame {
int x; // из стека → в heap
int __state; // текущая точка возобновления
promise_type __promise;
};
Видимость имён не меняется —
x виден только внутри функции. Меняется место хранения: не стек, а heap. Деструкторы по-прежнему вызываются при выходе из scope — но «выход» теперь может произойти через co_return или уничтожение корутины.📍Навигация: Вакансии • Задачи • Собесы
Библиотека 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++ разработчика
#буст
С разработчик — Удалёнка
Middle / Senior Разработчик C/C++ — Удалёнка/гибрид (Новосибирск)
Senior C Developer — от 350 000 ₽ Удалёнка
✍️ Еще больше топовых вакансий — в нашем канале C++ jobs
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#буст
👍1😁1
🛡️ C++26: безопасность наконец становится частью языка
Устали от багов с памятью, которые ломают прод в самый неподходящий момент? C++26 меняет правила игры:
▶️
▶️
▶️
▶️
▶️
📺 Больше подробностей в видео
Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#линкер_рекомендует
Устали от багов с памятью, которые ломают прод в самый неподходящий момент? 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(<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👍4❤1
This media is not supported in your browser
VIEW IN TELEGRAM
📅 Старт курса — 20 апреля.
Если хотите разобраться, как строить управляемые агентные системы:
P.S.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2
🍔 Реферальный рекрутинг в IT
Соискатели с рекомендацией получают оффер в 4 раза чаще, чем те, кто откликается в холодную. В 2026 году реферальный найм — уже не лайфхак, а отдельный канал трудоустройства. Разбираемся, как он устроен и как им воспользоваться.
👉 Продолжить читать
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#свежак
Соискатели с рекомендацией получают оффер в 4 раза чаще, чем те, кто откликается в холодную. В 2026 году реферальный найм — уже не лайфхак, а отдельный канал трудоустройства. Разбираемся, как он устроен и как им воспользоваться.
👉 Продолжить читать
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#свежак
😁1
Forwarded from Библиотека собеса по C++ | вопросы с собеседований
Каково поведение std::index_sequence<3, 1, 4, 1, 5> — валидна ли такая последовательность?
Anonymous Quiz
25%
Невалидна — стандарт требует, чтобы индексы были уникальными и строго возрастающими
12%
Валидна только при использовании с std::tuple, но запрещена с std::array и векторами
11%
Невалидна — компилятор выдаст ошибку при инстанциации специализации с повторами
45%
Валидна — integer_sequence допускает любые значения, включая повторяющиеся индексы
7%
Невалидна — компилятор выдаст ошибку при инстанциации специализации с повторами
😁1
😜 Истории от PVS-Studio: как мы избавились от сотен мёртвых комментариев в кодовой базе
Многие статические анализаторы позволяют подавлять отдельные предупреждения прямо в коде с помощью специальных комментариев. Со временем таких меток в проектах накапливается всё больше. Часть из них теряет актуальность, и потом они просто висят в коде как магниты на холодильнике.
🍦 Читать дальше
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#свежак
Многие статические анализаторы позволяют подавлять отдельные предупреждения прямо в коде с помощью специальных комментариев. Со временем таких меток в проектах накапливается всё больше. Часть из них теряет актуальность, и потом они просто висят в коде как магниты на холодильнике.
🍦 Читать дальше
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#свежак
😁3👍1
📰 Свеженькое из мира C++
Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.
😎 Интересное:
• 7 грязных, но рабочих способов найти IT-работу в 2026 году — полезные хаки для поиска работы
• Почему функции rand и lrand48 из glibc годятся только для Тетриса — разбор, почему rand, lrand48 и random из glibc — это «не очень хорошие» генераторы
• Coroutine и scope — разбор, как работают области видимости в корутинах
• C++26: безопасность наконец становится частью языка — нововведения в новый стандарт касающиеся безопасности
• __has_include() — расширение препроцессора, для проверки доступности заголовочных файлов
🔹📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/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++ разработчика
#междусобойчик
В этот праздничный день отдохнём от задач. Вместо этого попросим вас написать пожелания по постам. Возможно каких-то тематик вам не хватает, или темы, которые вы хотели бы бы увидеть на канале. Критика тоже приветствуется😊
❗️Попросим учесть, что тематики можно было поместить в пост. Это пожелание.
P.S. Милых дам поздравляем с праздником 😼❤️
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
❤4😁2
💥 Открытый вебинар | ИИ-агенты в продакшене: от хайпа к деньгам
Агенты уже везде. Но мало кто признаётся, сколько денег сжёг на бесконечных циклах, галлюцинациях в RAG и отсутствии мониторинга.
Полина Полунина, руководитель AI-направления Альфа-Банка, расскажет честно:
▪️ Чем агент отличается от «просто GPT с промптом» и когда бизнесу достаточно обычного LLM
▪️ 3 реальных кейса из корпоративной среды: что взлетело, а что нет
▪️ Live-демо работающего агента
▪️ ТОП-5 граблей, на которые наступают команды при внедрении
⏱️ 10 марта в 19:00 (МСК)
🎁 Участники получат промокод на скидку на самый полный курс по ИИ-агентам
👉 Регистрируйся
Агенты уже везде. Но мало кто признаётся, сколько денег сжёг на бесконечных циклах, галлюцинациях в RAG и отсутствии мониторинга.
Полина Полунина, руководитель AI-направления Альфа-Банка, расскажет честно:
▪️ Чем агент отличается от «просто GPT с промптом» и когда бизнесу достаточно обычного LLM
▪️ 3 реальных кейса из корпоративной среды: что взлетело, а что нет
▪️ Live-демо работающего агента
▪️ ТОП-5 граблей, на которые наступают команды при внедрении
⏱️ 10 марта в 19:00 (МСК)
🎁 Участники получат промокод на скидку на самый полный курс по ИИ-агентам
👉 Регистрируйся
😁1
Forwarded from Библиотека задач по C++ | тесты, код, задания
Forwarded from Библиотека задач по C++ | тесты, код, задания
Передаётся ли дружба через транзитивность?
Anonymous Quiz
65%
Ошибка: C не имеет доступа к A::x
19%
Успешно: C друг B, B друг A
4%
Предупреждение, но компилируется
6%
Ошибка: неправильный forward-decl
5%
Ошибка только в getAX класса BОшибка только в getAX класса B
😁4