Гарантирован ли порядок вычисления аргументов в вызове функции?
1,00
р.
р.
К примеру, у меня есть такой вызов функции: std::unique_ptr tmp{new MyClassWithNameFunction} foo(tmp->name(), std::move(tmp)) Гарантировано ли, что вызов метода name() будет происходить первым?
Ответ Порядок вычисления аргументов в вызове функции — это пример неуточняемого поведения (англ. unspecified behavior). Такое поведение зависит от реализации (компилятора), но реализация свой выбор поведения документировать не должна. Кстати говоря, порядок вычисления аргументов необязательно должен быть справа-налево или слева-направо. Более того, при вызове разных функций он может быть разным.