⚙️ C++26 Contract Assertions
C++26 Contract Assertions — это введении нового механизма для проверки корректности программы во время выполнения, которые заменяют традиционные макросы assert более мощным и гибким инструментом.
В документе P3846R0 авторы разбирают ключевые возражений против включения контрактных утверждений в стандарт C++26 и дают подробные ответы на каждое из них.
❗Ключевые моменты документа:
• Contract assertions не делают C++ «менее безопасным» — они позволяют инкрементально улучшать корректность кода
• Возможность настройки семантики проверок (ignore/observe/enforce/quick-enforce) является необходимостью, а не недостатком
• Mixed-mode сборки с разными семантиками контрактов — это неизбежность модели компиляции C++, а не баг в дизайне
Основной фокус — защита функциональности, которая разрабатывалась более 20 лет, и получила реализацию в GCC и Clang.
👉 Драфт с предложениями
Библиотека C/C++ разработчика
#свежак
C++26 Contract Assertions — это введении нового механизма для проверки корректности программы во время выполнения, которые заменяют традиционные макросы assert более мощным и гибким инструментом.
В документе P3846R0 авторы разбирают ключевые возражений против включения контрактных утверждений в стандарт C++26 и дают подробные ответы на каждое из них.
❗Ключевые моменты документа:
• Contract assertions не делают C++ «менее безопасным» — они позволяют инкрементально улучшать корректность кода
• Возможность настройки семантики проверок (ignore/observe/enforce/quick-enforce) является необходимостью, а не недостатком
• Mixed-mode сборки с разными семантиками контрактов — это неизбежность модели компиляции C++, а не баг в дизайне
Основной фокус — защита функциональности, которая разрабатывалась более 20 лет, и получила реализацию в GCC и Clang.
👉 Драфт с предложениями
Библиотека C/C++ разработчика
#свежак
🙏4👍3
📰 Свеженькое из мира C++
Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.
😎 Полезное:
• Передача сообщений через condition_variable — способ общения между потоками
• std::scoped_lock — способ захватить несколько потоков избегая deadlock
• Генерация шаблонного кода — паттерн для генерации boilerplate кода
• 14 вопросов, после которых вам не перезвонят — статья о том как не завалить собеседование
🔥 Интересные проекты:
• Envoy — прокси-сервер, предназначенный для облачных приложений и микросервисной архитектуры
• ESPHome — открытая система для управления микроконтроллерами (ESP8266, ESP32 и др.)
• Shotcut — бесплатный кроссплатформенный видеоредактор с открытым исходным кодом
• uWebSockets — простой, безопасный и соответствующий стандартам web-сервер для самых требовательных приложений
Библиотека C/C++ разработчика
#свежак
Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.
😎 Полезное:
• Передача сообщений через condition_variable — способ общения между потоками
• std::scoped_lock — способ захватить несколько потоков избегая deadlock
• Генерация шаблонного кода — паттерн для генерации boilerplate кода
• 14 вопросов, после которых вам не перезвонят — статья о том как не завалить собеседование
🔥 Интересные проекты:
• Envoy — прокси-сервер, предназначенный для облачных приложений и микросервисной архитектуры
• ESPHome — открытая система для управления микроконтроллерами (ESP8266, ESP32 и др.)
• Shotcut — бесплатный кроссплатформенный видеоредактор с открытым исходным кодом
• uWebSockets — простой, безопасный и соответствующий стандартам web-сервер для самых требовательных приложений
Библиотека C/C++ разработчика
#свежак
👍3
📰 Свеженькое из мира C++
Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.
🍖 Интересное:
• Как написать собственную кинематику для робота-манипулятора — разбор алгоритмов обратной кинематики для робота xArm 2.0, который должен был ловить объекты на конвейере
• IT-рынок обвалился: на одну вакансию теперь 2383 отклика — грустные новости об текущем положении IT рынка
😎 Полезное:
• std::latch — барьер в виде счётчика для синхронизации работы нескольких потоков
• std::byteswap — удобная конвертация между little/big endian
🔥 Интересные проекты:
• Embox v0.7.0 — RTOS с Linux-окружением без Linux
• O3DE — открытый кросплатформенный игровой движок с открытым исходный кодом
• Faiss — библиотека для эффективного поиска по сходству и кластеризации плотных векторов
Библиотека C/C++ разработчика
#свежак
Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.
🍖 Интересное:
• Как написать собственную кинематику для робота-манипулятора — разбор алгоритмов обратной кинематики для робота xArm 2.0, который должен был ловить объекты на конвейере
• IT-рынок обвалился: на одну вакансию теперь 2383 отклика — грустные новости об текущем положении IT рынка
😎 Полезное:
• std::latch — барьер в виде счётчика для синхронизации работы нескольких потоков
• std::byteswap — удобная конвертация между little/big endian
🔥 Интересные проекты:
• Embox v0.7.0 — RTOS с Linux-окружением без Linux
• O3DE — открытый кросплатформенный игровой движок с открытым исходный кодом
• Faiss — библиотека для эффективного поиска по сходству и кластеризации плотных векторов
Библиотека C/C++ разработчика
#свежак
👍2
📰 Свеженькое из мира C++
Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.
🍖 Интересное:
• Красивое резюме = провал — статья о том почему могут игнорировать пезюме, даже если оно хорошее
• «Я хочу 500 000 рублей» и еще 8 способов договориться о зарплате — полезные рекомендации о том как просить зарплату повыше
😎 Полезное:
• std::partition — функция помогающая разделять данные по условию
• Как сократить бинарный код и не потерять нужную функциональность — статья об оптимизации кода с помощью флагов сборки
• Алокаторы — чек-лист о том какие есть аллокаторы в C++
🔥 Интересные проекты:
• cpp-httplib — кроссплатформенная HTTP/HTTPS-библиотека C++11, содержащая только заголовочные файлы
• Perfetto — набор SDK, демонов и инструментов с открытым исходным кодом, которые помогают реализовывать трассировку и профилирование
Библиотека C/C++ разработчика
#свежак
Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.
🍖 Интересное:
• Красивое резюме = провал — статья о том почему могут игнорировать пезюме, даже если оно хорошее
• «Я хочу 500 000 рублей» и еще 8 способов договориться о зарплате — полезные рекомендации о том как просить зарплату повыше
😎 Полезное:
• std::partition — функция помогающая разделять данные по условию
• Как сократить бинарный код и не потерять нужную функциональность — статья об оптимизации кода с помощью флагов сборки
• Алокаторы — чек-лист о том какие есть аллокаторы в C++
🔥 Интересные проекты:
• cpp-httplib — кроссплатформенная HTTP/HTTPS-библиотека C++11, содержащая только заголовочные файлы
• Perfetto — набор SDK, демонов и инструментов с открытым исходным кодом, которые помогают реализовывать трассировку и профилирование
Библиотека C/C++ разработчика
#свежак
❤4👍1