Элементы последовательности C++
Выражение может изменить значение объекта только один раз между последовательными "точками последовательности".
Только для систем Microsoft
Определение языка C++ в настоящее время не определяет точки последовательности.Microsoft C++ использует те же элементы последовательности в ANSI c для любого выражения, включая операторы c# и не включая перегруженные операторы.Если операторы перегружанны, изменение семантики из последовательности выполняется оператора для последовательности вызова функции.Microsoft C++ использует следующие элементы последовательности:
Левый операнд оператора логического И (&&).Левый операнд оператора логического И полностью вычисляется и все побочные эффекты завершены перед тем как продолжить.Нет никакой гарантии, что будет вычислен правый операнд оператора логического И.
Левый операнд оператора логического ИЛИ (||).Левый операнд оператора логического ИЛИ полностью вычисляется и все побочные эффекты завершены перед тем как продолжить.Нет никакой гарантии, что будет вычислен правый операнд оператора логического ИЛИ.
Левый операнд оператора запятой.Левый операнд оператора запятой полностью вычисляется и все побочные эффекты завершены перед тем как продолжить.Оба операнда оператора запятой всегда вычисляются.
Оператор вызова функции.Вычисляемое выражение вызова функции и все аргументы для функции, включая аргументы по умолчанию, и все побочные эффекты завершены до записи на функцию.Не определен порядок вычисления числа аргументов или выражения вызова функции.
Первый операнд условного оператора.Первый операнд условного оператора полностью вычисляется и все побочные эффекты завершены перед тем как продолжить.
Окончание полного выражения инициализации, как завершение инициализации при выписке объявления.
Выражение в выписке выражения.Выписки выражения состоят из дополнительного выражения и точкой с запятой (;).Выражение вычисляется полностью в качестве побочных эффектов.
Управление выражение в выписке выделения (если ключ).Выражение вычисляется и полностью все побочные эффекты завершены перед тем, как выполняется зависимые кода в выделении.
Управление выражение while или делает выписку.Выражение вычисляется и полностью выполняются все побочные эффекты завершены перед всеми выписками в следующей итерации цикла while или закрепляют.
Каждый из 3 выражений для выписки.Каждое выражение вычисляется полностью и все побочные эффекты завершены перед переходом к следующему выражению.
Выражение в возвращенной выписке.Выражение вычисляется и полностью все побочные эффекты завершены перед тем, как элемент управления возвращается вызывающей функции.