Telegram Group & Telegram Channel
🔹 C++26: ошибочное поведение (Erroneous Behaviour)

В C++ мы обычно говорим о двух категориях поведения:
определённое поведение (well-defined)
неопределённое поведение (undefined behaviour, UB)

Второе — одно из самых пугающих понятий в языке. Это когда программа делает что угодно, и компилятор не обязан предупреждать о проблеме. Примеры UB: выход за границы массива, разыменование нулевого указателя и т.д.

Однако в будущем стандарте C++26 вводится новая категория: ошибочное поведение (erroneous behaviour).

Что такое erroneous behaviour?

Это ситуация, когда программа ведёт себя неправильно, но компилятор обязан выдать ошибку или хотя бы предупреждение. Это промежуточный уровень между "всё хорошо" и "всё ужасно и не предсказуемо".

Erroneous behaviour позволяет:
- Сохранить производительность (в отличие от полного исключения или runtime-проверок)
- Сделать поведение программы более предсказуемым
- Упростить диагностику проблем

📌 Пример

Допустим, в constexpr-функции вызывается функция, не являющаяся constexpr. Сейчас это UB, но в C++26 это будет квалифицироваться как erroneous behaviour, и компилятор обязан будет выдать ошибку на этапе компиляции.


constexpr int foo() {
return std::time(nullptr); // std::time не является constexpr
}


Такой код сейчас может пройти компиляцию при определённых условиях, но в будущем — нет.

🧩 Отличие от UB и других видов поведения

- UB — компилятор может делать что угодно (не выдавать ошибку, не предупреждать, и т.д.)
- Implementation-defined — конкретная реализация (компилятор) должна задокументировать поведение
- Erroneous behaviour — компилятор обязан ругаться

🤔 Почему это важно?

Эта категория позволяет более чётко определять границы корректного кода и помогает разработчикам избегать трудноуловимых багов. Это шаг к более строгой и безопасной разработке на C++ без жёстких ограничений на производительность.

https://www.sandordargo.com/blog/2025/02/05/cpp26-erroneous-behaviour

#cpp #programming

👉 @cpp_lib



tg-me.com/cpp_lib/1912
Create:
Last Update:

🔹 C++26: ошибочное поведение (Erroneous Behaviour)

В C++ мы обычно говорим о двух категориях поведения:
определённое поведение (well-defined)
неопределённое поведение (undefined behaviour, UB)

Второе — одно из самых пугающих понятий в языке. Это когда программа делает что угодно, и компилятор не обязан предупреждать о проблеме. Примеры UB: выход за границы массива, разыменование нулевого указателя и т.д.

Однако в будущем стандарте C++26 вводится новая категория: ошибочное поведение (erroneous behaviour).

Что такое erroneous behaviour?

Это ситуация, когда программа ведёт себя неправильно, но компилятор обязан выдать ошибку или хотя бы предупреждение. Это промежуточный уровень между "всё хорошо" и "всё ужасно и не предсказуемо".

Erroneous behaviour позволяет:
- Сохранить производительность (в отличие от полного исключения или runtime-проверок)
- Сделать поведение программы более предсказуемым
- Упростить диагностику проблем

📌 Пример

Допустим, в constexpr-функции вызывается функция, не являющаяся constexpr. Сейчас это UB, но в C++26 это будет квалифицироваться как erroneous behaviour, и компилятор обязан будет выдать ошибку на этапе компиляции.


constexpr int foo() {
return std::time(nullptr); // std::time не является constexpr
}


Такой код сейчас может пройти компиляцию при определённых условиях, но в будущем — нет.

🧩 Отличие от UB и других видов поведения

- UB — компилятор может делать что угодно (не выдавать ошибку, не предупреждать, и т.д.)
- Implementation-defined — конкретная реализация (компилятор) должна задокументировать поведение
- Erroneous behaviour — компилятор обязан ругаться

🤔 Почему это важно?

Эта категория позволяет более чётко определять границы корректного кода и помогает разработчикам избегать трудноуловимых багов. Это шаг к более строгой и безопасной разработке на C++ без жёстких ограничений на производительность.

https://www.sandordargo.com/blog/2025/02/05/cpp26-erroneous-behaviour

#cpp #programming

👉 @cpp_lib

BY Библиотека C/C++ разработчика


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/cpp_lib/1912

View MORE
Open in Telegram


telegram Telegram | DID YOU KNOW?

Date: |

Telegram and Signal Havens for Right-Wing Extremists

Since the violent storming of Capitol Hill and subsequent ban of former U.S. President Donald Trump from Facebook and Twitter, the removal of Parler from Amazon’s servers, and the de-platforming of incendiary right-wing content, messaging services Telegram and Signal have seen a deluge of new users. In January alone, Telegram reported 90 million new accounts. Its founder, Pavel Durov, described this as “the largest digital migration in human history.” Signal reportedly doubled its user base to 40 million people and became the most downloaded app in 70 countries. The two services rely on encryption to protect the privacy of user communication, which has made them popular with protesters seeking to conceal their identities against repressive governments in places like Belarus, Hong Kong, and Iran. But the same encryption technology has also made them a favored communication tool for criminals and terrorist groups, including al Qaeda and the Islamic State.

At a time when the Indian stock market is peaking and has rallied immensely compared to global markets, there are companies that have not performed in the last 10 years. These are definitely a minor portion of the market considering there are hundreds of stocks that have turned multibagger since 2020. What went wrong with these stocks? Reasons vary from corporate governance, sectoral weakness, company specific and so on. But the more important question is, are these stocks worth buying?

telegram from sg


Telegram Библиотека C/C++ разработчика
FROM USA