Как [[предположить]] влияет на утверждение?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как [[предположить]] влияет на утверждение?

Сообщение Anonymous »

Атрибут, определенный пользователем [[[Absumes (Expression)]] < /code> < /p>

Указывает, что предполагается, что данное выражение всегда оценивает True в данной точке, чтобы допустить оптимизацию компилятора, основанную на данной информации. поведение. < /p>
Однако на одной странице говорится: < /p>

Один правильный способ их использования - это следить за утверждениями с предположениями: < /p>

Код: Выделить всё

assert(x > 0);     // trigger an assertion when NDEBUG is not defined and x > 0 is false
[[assume(x > 0)]]; // provide optimization opportunities when NDEBUG is defined
< /code>
< /blockquote>
Я смущен этим утверждением. Если ndebug 
не определен, а x> 0 является ложным, условие в предположении было бы ложным, что запускает неопределенное поведение. Это означало бы, что «правильное» использование на самом деле не верно, поэтому я подозреваю, что я что -то здесь не понимаю. Является ли UB, вызванный [[[Предполагается]] не разрешено «травром во времени», как обычно ub?>

Подробнее здесь: https://stackoverflow.com/questions/797 ... -an-assert
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»