Есть ли способ установить определенный порядок оценки аргументов функции? [дубликат]C++

Программы на C++. Форум разработчиков
Гость
Есть ли способ установить определенный порядок оценки аргументов функции? [дубликат]

Сообщение Гость »


Я понимаю, что когда я вызываю такую ​​функцию, как

a(b(),c()); тогда поведение this может быть неопределенным в = C++17, в том смысле, что компилятор должен определить, следует ли оценивать b или c первым.

Я хотел бы знать, как лучше всего добиться порядка оценки. Я буду компилировать как C++14.

Сразу на ум приходит примерно следующее:

#include число интервалов = 5; автоматическое приращение(){ количество возврата++; } шаблон auto diff(A && a, B && b){ вернуть а-б; } интервал основной() { авто && a = приращение(); авто && b = приращение(); авто с = разница (а, б); } Нахожусь ли я в стране неопределенного поведения? Или именно так «должно» устанавливать порядок вычислений?

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