Какой компилятор сначала оценивает самый левый параметр?C++

Программы на C++. Форум разработчиков
Anonymous
Какой компилятор сначала оценивает самый левый параметр?

Сообщение Anonymous »

Я знаю, что порядок вычисления параметров функции не указан в C++, см. ниже,

// Простой и очевидный.< /p>

Код: Выделить всё

callFunc(getA(),getB());
Может быть эквивалентом этому:

Код: Выделить всё

int a = getA();
int b = getB();
callFunc(a,b);
Or this:

int b = getB();
int a = getA();
callFunc(a,b);
Это прекрасно, и я думаю, что большинство людей это знают.

Но я пробовал VC10, gcc 4.72 и все они сначала оценивают b (справа налево), то есть сначала b помещается в кадр стека, а затем a.

Мне просто интересно, какой компилятор C++ мне следует попробовать напишите приведенный выше код для первой оценки ?
Итак, a переместился в стек раньше b.

Спасибо

Подробнее здесь: https://stackoverflow.com/questions/133 ... eter-first

Вернуться в «C++»