Сообщение Re[2]: Приоритет операторов в C++ от 24.01.2017 7:55
Изменено 24.01.2017 7:57 rg45
Re[2]: Приоритет операторов в C++
Здравствуйте, RussianFellow, Вы писали:
RF>Ну, например, что означают выражения:
RF>
Разыменование двух указателей с последующим инкрементом и присваиванием.
Если только все используетые операторы не являются перегруженными, то, согласно пункту 1.9/15 стандарта С++11, такое выражение порождает неопределенное поведение, поскольку скалярный объект, адресуемый указателем p1, модифицируется дважды посредством неупорядоченных побочных эффектов:
В C++03 это поведение регулировалось таким понятием как "точки следования". Начиная с C++11 точки следования были заменены уточненными понятиями, но принцип сохранился.
RF>Ну, например, что означают выражения:
RF>
RF>++*p1 = ++*p2;
RF>
Разыменование двух указателей с последующим инкрементом и присваиванием.
Если только все используетые операторы не являются перегруженными, то, согласно пункту 1.9/15 стандарта С++11, такое выражение порождает неопределенное поведение, поскольку скалярный объект, адресуемый указателем p1, модифицируется дважды посредством неупорядоченных побочных эффектов:
If a side effect on a scalar object is unsequenced relative to either another side effect on the same scalar object or a value computation using the value of the same scalar object, the behavior is undefined.
В C++03 это поведение регулировалось таким понятием как "точки следования". Начиная с C++11 точки следования были заменены уточненными понятиями, но принцип сохранился.
Re[2]: Приоритет операторов в C++
Здравствуйте, RussianFellow, Вы писали:
RF>Ну, например, что означают выражения:
RF>
Разыменование двух указателей с последующим инкрементом адресуемых объектов и присваиванием.
Если только все используетые операторы не являются перегруженными, то, согласно пункту 1.9/15 стандарта С++11, такое выражение порождает неопределенное поведение, поскольку скалярный объект, адресуемый указателем p1, модифицируется дважды посредством неупорядоченных побочных эффектов:
В C++03 это поведение регулировалось таким понятием как "точки следования". Начиная с C++11 точки следования были заменены уточненными понятиями, но принцип сохранился.
RF>Ну, например, что означают выражения:
RF>
RF>++*p1 = ++*p2;
RF>
Разыменование двух указателей с последующим инкрементом адресуемых объектов и присваиванием.
Если только все используетые операторы не являются перегруженными, то, согласно пункту 1.9/15 стандарта С++11, такое выражение порождает неопределенное поведение, поскольку скалярный объект, адресуемый указателем p1, модифицируется дважды посредством неупорядоченных побочных эффектов:
If a side effect on a scalar object is unsequenced relative to either another side effect on the same scalar object or a value computation using the value of the same scalar object, the behavior is undefined.
В C++03 это поведение регулировалось таким понятием как "точки следования". Начиная с C++11 точки следования были заменены уточненными понятиями, но принцип сохранился.