Существует ли точка последовательности между вызовом функции, возвращающей объект, и вызовом метода для этого объекта?

Если я напишуf(x)->g(args, ...) могу ли я положиться на точку последовательности послеf(x) до оценкиargs, ...? Я могу видеть аргументы в обоих направлениях:

§1.9.17 «При вызове функции (независимо от того, является ли функция встроенной), после вычисления всех аргументов функции (если таковые имеются) существует точка последовательности, которая происходит перед выполнением любых выражений или операторов в теле функции.Существует также точка последовательности после копирования возвращаемого значения и перед выполнением любых выражений вне функции."С другой стороны, указатель объекта неявно является скрытым аргументом.this как будто я написалg(f(x), args, ...) что говорит о том, что это как аргумент, и, следовательно, не указано.

-> оператор не является нормальным бинарным оператором, так какg(...) не можешь оцениваться раньшеf(x) как мог бы, если бы я написалf(x) + g(...), Я удивлен, что не могу найти какое-то конкретное заявление по этому поводу.

Ответы на вопрос(2)

Ваш ответ на вопрос