Форум программистов, компьютерный форум CyberForum.ru

Order of evaluation - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функция , которая перезапускает проект http://www.cyberforum.ru/cpp-beginners/thread1774494.html
Подскажите есть команда или ф-Ия которая перезапускает проект заного Завершает текущий проект и открывает его заного Спасибо
C++ Использование стороннего контейнера Помогите из этого кода, сделать нормальную прогу #ifndef _GLIBCXX_ARRAY #define _GLIBCXX_ARRAY 1 #pragma GCC system_header #if __cplusplus < 201103L # include <bits/c++0x_warning.h> #else http://www.cyberforum.ru/cpp-beginners/thread1774493.html
Доступ к данным при наследовании C++
здравствуйте, есть иерархия классов, схематично можно представить так: namespace Singl { class CObs {}; template<typename T> class A { public: virtual ~A() { delete variables; } static T* Instance() {
C++ Распознавание слов в аудиофайле. С чего начать?
Здравствуйте уважаемые! Передо мной встала задача написать программу которая будет брать аудиофайл(предположительно в wav) и искать в нём некие слова. С такой областью разработки я ещё не сталкивался, поэтому прошу помощи, с чего мне начать? Что прочесть? Спасибо!
C++ Найти ранг матрицы http://www.cyberforum.ru/cpp-beginners/thread1774461.html
Найти ранг прямоугольной матрицы A(m,n) методом Гаусса.Покажите пожалуйста на примере как реализовать это , заранее благодарю .
C++ Центр тяжести выпуклого многоугольника Итак народ , необходимо найти центр тяжести выпуклого многоугольника заданного своими вершинами в порядке обхода по часовой стрелке ... подробнее

Показать сообщение отдельно
ASCII
 Аватар для ASCII
82 / 54 / 8
Регистрация: 15.12.2013
Сообщений: 369
Завершенные тесты: 2
02.07.2016, 13:59  [ТС]     Order of evaluation
Croessmah, ну во-первых посмотрел бы на две части оператора =.

1) вычислил бы i (которая слева, value computation)
2) ++i + i++ ==> начал бы вычислять сперва значения операндов и наткнулся бы на:


4) The value computation of the built-in post-increment and post-decrement operators is sequenced before its side-effect.
-----------------------------------------------------------------------------------------------
Вычисление значение у встроенного постфиксного оператора инкремента расположено перед его побочным эффектом

5) The side effect of the built-in pre-increment and pre-decrement operators is sequenced before its value computation (implicit rule due to definition as compound assignment)
-----------------------------------------------------------------------------------------------
Тут тоже самое, только наоборот, побочный эффект перед вычислением значения


Но вроде как нету правила, которое мне (компилятору), диктует какой из операндов я должен вычислять первым.
Поэтому я могу поступить двумя способами:

1)

вычислить сперва ++i
вычислить i++
вычислить их сумму

2)

вычислить i++
вычислить ++i
вычислить их сумму

Но тут у оператора + операнды (++i) и (i++), поэтому вычислить значения операндов можно только с побочным эффектом, то есть выполняя операторы инкремента.

Таким образом, допустим если i изначально была равна 10

В первом варианте получается 23
Во втором варианте получается 22.

Еп, походу наличие двух вариантов у компиляторов и приводит к UB?
Какую-то длинную цепочку мыслей я построил...
 
Текущее время: 05:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru