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

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

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

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

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

#WXSSA
Download Telegram
🛡️ 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👍4
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