ASP.NET Отображение и чтение значений флажков из базы данных сервера SQL

C ++ 17 (N4659) включает предложение Refining Expression Evaluation Order для Idiomatic C ++ , которое определяет более строгий порядок оценки выражения.

В частности, [ было добавлено следующее предложение :

8.18 Операторы присваивания и составного присваивания: ....

Во всех случаях назначение упорядочивается после значения вычисление правого и левого операндов и перед вычислением значения выражения присваивания. Правильный операнд секвентирован перед левым операндом.

blockquote>

Он делает несколько случаев ранее не определенного поведения действительными, включая тот, о котором идет речь:

a[++i] = i;

Однако несколько других подобных случаев по-прежнему приводят к неопределенному поведению.

В N4140:

i = i++ + 1; // the behavior is undefined

Но в N4659

i = i++ + 1; // the value of i is incremented
i = i++ + i; // the behavior is undefined

Конечно, использование компилятора, совместимого с C ++ 17, не обязательно означает, что следует начинать писать такие выражения.

0
задан Anže Plevnik 20 March 2019 в 06:48
поделиться