C++26 — встреча ISO в Хагенберге

В середине февраля в Хагенберге состоялась встреча международного комитета по стандартизации языка программирования C++. В этот раз прорабатывались следующие большие темы: std::hive Constexpr, ещё больше constexpr Безопасность, контракты, hardening, профили, UB и std::launder Relocate #embed Об этом и других новинках расскажу в посте

https://habr.com/ru/companies/yandex/articles/882518/

#c++29 ++29 #c++26 ++26 ++ #c++ #reflection #constexpr #exception #simd #safety #security #undefined_behavior #memory #byte #bit #contracts #relocation #hive #object_pool #embed

C++26 — встреча ISO в Хагенберге

В середине февраля в Хагенберге состоялась встреча международного комитета по стандартизации языка программирования C++. В этот раз прорабатывались следующие большие темы: std::hive Constexpr, ещё...

Хабр

[Перевод] Избавляемся от UB в memcpy

Неопределённое поведение (undefined behavior, UB) в языке программирования C — постоянный источник жарких споров между программистами. С одной стороны, UB может быть важным для оптимизаций компилятора. С другой стороны, оно упрощает появление багов, которые приводят к проблемам безопасности. Хорошая новость: N3322 был принят для C2y, что позволит устранить неопределённое поведение из этого конкретного участка языка C и сделать всё показанное ниже чётко определённым: memcpy(NULL, NULL, 0); memcmp(NULL, NULL, 0); (int *)NULL + 0; (int *)NULL - 0; (int *)NULL - (int *)NULL;

https://habr.com/ru/articles/866088/

#gcc #clang #llvm #неопределённое_поведение #undefined_behavior

Избавляемся от UB в memcpy

Неопределённое поведение (undefined behavior, UB) в языке программирования C — постоянный источник жарких споров между программистами. С одной стороны, UB может быть важным для оптимизаций...

Хабр

Путеводитель C++ программиста по неопределённому поведению

Вашему вниманию предлагается полный список разделов электронной книги (12 из 11 :)), посвящённой неопределённому поведению. Книга не является учебным пособием и рассчитана на тех, кто уже хорошо знаком с программированием на C++. Это своего рода путеводитель C++ программиста по неопределённому поведению, причём по самым его тайным и экзотическим местам. Автор книги — Дмитрий Свиридкин, редактор — Андрей Карпов.

https://habr.com/ru/companies/pvs-studio/articles/877274/

#Неопределённое_поведение #undefined_behavior #C #C++ #Си #Си++ #баги #ошибки_в_коде #ошибки_программистов #программирование #компиляторы

Путеводитель C++ программиста по неопределённому поведению

Вашему вниманию предлагается полный список разделов электронной книги (12 из 11 :)), посвящённой неопределённому поведению. Книга не является учебным пособием и рассчитана на тех, кто уже хорошо...

Хабр

ISO C++ — встреча международного комитета в Польше

В конце ноября состоялась встреча международного комитета по стандартизации языка программирования C++. В этот раз без внимания не остались темы: Рефлексия времени компиляции и оператор «монобровь» Constexpr, много constexpr SIMD Structured bindings as a pack Безопасность, контракты, libc++ hardening, профили, UB и std::launder Сколько бит в байте? Об этом и других новинках расскажу в посте

https://habr.com/ru/companies/yandex/articles/860308/

#c++26 ++26 ++ #c++ #reflection #constexpr #consteval #exception #simd #safety #security #undefined_behavior #memory #byte #bit

ISO C++ — встреча международного комитета в Польше

В конце ноября состоялась встреча международного комитета по стандартизации языка программирования C++. В этот раз без внимания не остались темы: Рефлексия времени компиляции...

Хабр

Торги на Мосбирже приостановлены на час из-за ошибки при работе с памятью

14 августа с 16:18 по 17:30 Московская биржа приостановила торги на фондовом рынке. По информации с официального сайта инцидент произошел из-за программной ошибки на сервере доступа.

https://habr.com/ru/articles/836116/

#безопасная_разработка #rust #c++ #undefined_behavior #memory_safety

Торги на Мосбирже приостановлены на час из-за ошибки при работе с памятью

14 августа с 16:18 по 17:30 Московская биржа приостановила торги на фондовом рынке. По информации с официального сайта инцидент произошел из-за программной ошибки на сервере доступа. Судя по...

Хабр

Опасность устарела: несколько важных нюансов в новых стандартах C++

Undefined behavior (UB) — боль, знакомая каждому разработчику со стажем; эдакий «код Шредингера», когда не знаешь, правильно тот работает или нет. К счастью, стандарты языка С++20/23/26 привнесли относительно неопределенного поведения кое-что новое. И довольно важное, если вы — архитектор ПО, а «плюсы» — ключевой стек вашей компании (подробнее о том, как и почему мы в «Лаборатории Касперского» много используем С++, читайте здесь ). В этой статье я со своих позиций Senior Software Architect и Security Champion в микроядерной операционной системе KasperskyOS рассмотрю кейсы-ловушки, в которые можно попасть практически в любом из стандартов, и покажу, что меняется в С++20/23/26, — уменьшается ли количество кейсов с неопределенным поведением, и становится ли С++ безопаснее.

https://habr.com/ru/companies/kaspersky/articles/822373/

#c++ #программирование #c #си++ #qt #c++20 #статический_анализ_кода #разработка #информационная_безопасность #кибербезопасность #безопасность #уязвимости #кибератаки #пентест #cybersecurity #си #stm32 #undefined_behavior #компиляторы #llvm #языки_программирования #компилятор #системное_программирование

Опасность устарела: несколько важных нюансов в новых стандартах C++

Undefined behavior (UB) — боль, знакомая каждому разработчику со стажем; эдакий «код Шредингера», когда не знаешь, правильно тот работает или нет. К счастью, стандарты языка С++20/23/26 привнесли...

Хабр

Сколько UB в моём компиляторе?

У C и C++ программистов две головные боли в плане ошибок: утечки памяти и неопределённое поведение. И как вы догадались из названия, речь пойдёт о неопределённом поведении. И каком-то "моём" компиляторе. Если точнее, то о наборе компиляторов и инструментах для их разработки, а именно LLVM. Почему "моём"? Потому что мы очень любим Clang, входящий в состав LLVM, и пользуемся им на постоянной основе.

https://habr.com/ru/companies/pvs-studio/articles/820983/

++ #llvm #undefined_behavior #opensource #pvsstudio #static_analysis #bugs #компиляторы #ошибки_в_коде #программирование

Сколько UB в моём компиляторе?

У C и C++ программистов две головные боли в плане ошибок: утечки памяти и неопределённое поведение. И как вы догадались из названия, речь пойдёт о неопределённом поведении. И каком-то "моём"...

Хабр

Нельзя писать безопасный код на C++ без санитайзеров

С++ видится мне огромным франкенштейном: очень уж много разнообразных способов описать свои намерения. В добавок к этому язык пропагандирует политику zero-cost abstractions , из которой следует (помимо прочего), что программист в ответе за все свои действия. Однако, работая с большими кодовыми базами, становится крайне тяжело держать в уме различные тонкости языка, которые держать в уме нужно — иначе Undefined Behavior. В данной статье хочу рассказать о трех интересных случаях UB, с которыми столкнулся при разработке на С++. Не думаю, что опытным разработчикам примеры из статьи будут полезны, но, полагаю, что начинающим разработчикам смогу показать на своем примере, как не стоит писать код на C++.

https://habr.com/ru/articles/787776/

++ #Отладка #Баги #undefined_behavior

Нельзя писать безопасный код на C++ без санитайзеров

С++ видится мне огромным франкенштейном: очень уж много разнообразных способов описать свои намерения. В добавок к этому язык пропагандирует политику zero-cost abstractions ,...

Хабр

Есть ли Undefined Behavior в Rust?

Если вы никогда не сталкивались с Rust-ом, а слышали, что он помогает избежать Undefined Behavior (UB), то отчасти это так. Некоторые делят язык Rust на 2 части: safe и unsafe . Я бы поделил на 4 части: safe, unsafe, const и async . Но нас интересуют safe и unsafe. Получить UB в Rust-е не сложно - нужно открыть документацию и найти любой метод, помеченный unsafe, например, get_unchecked у Vec . Метод позволяет без проверки границ получить значение из динамического массива. А есть ли UB в safe -подмножестве языка? Есть . Он возможен из-за бага (проблемы) в компиляторе Rust, который живет с 2015 года.

https://habr.com/ru/articles/782412/

#Rust #lifetimes #type_safety #undefined_behavior #type_checking

Есть ли Undefined Behavior в Rust?

Если вы никогда не сталкивались с Rust-ом, а слышали, что он помогает избежать Undefined Behavior (UB), то отчасти это так. Некоторые делят язык Rust на 2 части: safe и unsafe . Я бы поделил на 4...

Хабр