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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
#1

Поряд вычисления операндов в операции - C++

27.11.2013, 17:04. Просмотров 292. Ответов 1
Метки нет (Все метки)

Предположим есть такой код:
C++
1
2
SomeType x = STCreate3() + STCreate1() * STCreate2();
//Все эти функции возвращают объект SomeType
Могу ли я быть уверен, что всегда (независимо от ключа оптимизации) будет выполнено так:
STCreate1()
StCreate2()
STCreate3()
?
Или же это UB?
А если говорить о базовых типах, допустим, int?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2013, 17:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поряд вычисления операндов в операции (C++):

Порядок вычисления операндов при сложении - C++
Есть такой пример int I = 2, k; k = (I=10)*(I=20); Чему в этом примере равно значение K?? 400, Так как последнее...

Определить результат целочисленного деления a на b, не используя стандартные операции вычисления остатка - C++
Не совсем понимаю условие. Как решить? Даны целые числа a,b(a>b). Определить результат целочисленного деления a на b, не используя...

Создать 100 файлов. Имя каждого файла должно соответствовать его поряд-ковому номеру. - C++
Создать 100 файлов. Имя каждого файла должно соответствовать его поряд-ковому номеру. В каждый из файлов записать его порядковый номер

Несовместимые типы операндов int и char - C++
Всем здравия! Ребят я запарился уже помогите пожалуйста! Учусь в универе необходимо создать БД в с++. Выдает ошибку при вводе "даты...

error C2443: конфликт размеров операндов. - C++
#include "stdafx.h" #include <stdio.h> #include <conio.h> int r_y1(int a, int x) { int y0; _asm

Вычислить значение выражения, используя стек операндов - C++
Дано арифметическое выражение длиной до 30 символов, заканчивающееся знаком равенства. Выражение содержит знаки операции +, -, *, / и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,370
27.11.2013, 17:43 #2
Не можешь. Более того, порядок вычисления операндов заведомо не определен и оставлен на усмотрение разработчиков компилятора.

Добавлено через 5 минут
Стандарт, 1.9/15:
Except where noted, evaluations of operands of individual operators and of subexpressions of individual expressions are unsequenced.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2013, 17:43
Привет! Вот еще темы с ответами:

написать логическое выражение , представляющее условие (знаки операций отделять от операндов пробелами): - C++
вопрос: На языке C++ написать логическое выражение , представляющее условие (знаки операций отделять от операндов пробелами): x...

Ошибка: отсутствует оператор >>,соответствующий этим операндам типы операндов: std::ostream>>const double - C++
Помогите или объясните в чем моя ошибка?? Вот программный код! заголовочный файл #ifndef _ZAGFILE_H_ #define _ZAGFILE_H_ #include...

Перегрузить операции сравнения комплексных чисел и операции потокового вывода - C++
Создать класс комплексное число. Перегрузить операции сравнения комплексных чисел! =, ==,>, <,> =, <= И операции потокового ввода-вывода. ...

Заменить операции ifstream на операции fprintf - C++
Собственно как и написано в заголовке заменить операции ifstream на fprintf со всеми вытекающими(типо getline) необходимо мне. Помогите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru