3 недели назад
🍊 Типобезопасные контейнеры в C: как заставить компилятор ловить ошибки без шаблонов
Положить структуру одного типа в список, предназначенный для другого, а потом искать причину падения программы — вполне реальный сценарий в C. Особенно если контейнер принимает универсальный указатель `void *`: он охотно пропустит данные, смысл которых уже не способен проверить. Дэниел Хупер в статье от 25 июня 2025 года показал способ вернуть такую проверку компилятору. Его идея — связать универсальную структуру данных с типом элемента через объединение `union`, а затем использовать эту связь в небольших макросах...
Какие хорошие новости о работе вас ждут? Выберите одну из трёх стопок Таро и узнайте, что уже начинает меняться
Здравствуйте, дорогие друзья! Бывает ведь так: месяцами ждёшь важного письма, решения руководства или ответа по вакансии. Постоянно проверяешь сообщения, прокручиваешь в голове возможные разговоры, пытаешься понять, заметили ли наконец твои усилия. А потом перемены начинаются совершенно неожиданно. Кто-то вскользь упоминает ваше имя на совещании. Руководитель вдруг интересуется проектом, который раньше его совершенно не волновал. Коллега сообщает о кадровых перестановках. Или человек, с которым вы давно не общались, неожиданно предлагает сотрудничество...