На cppreference я вижу следующий текст:
При вызове функции вычисления значений и побочные эффекты инициализации каждого параметра неопределенно упорядочены по отношению к вычислениям значений и побочным эффектам любого другого параметра.
Однако мне не удалось найти подтверждения этому в стандарте С++ 17.
Параметры функции, как подвыражения, должны соответствовать [intro.execution.17]:
Если не указано иное, вычисления операндов отдельных операторов и подвыражений отдельных выражений не упорядочены. [Примечание: В выражении, которое оценивается более одного раза во время выполнения программы, неупорядоченные и неопределенно упорядоченные вычисления его подвыражений не должны последовательно выполняться в разных вычислениях. — примечание в конце] Вычисление значения операндов оператора выполняется до вычисления значения результата оператора. Если побочный эффект в ячейке памяти (4.4) не является последовательным по отношению либо к другому побочному эффекту в той же ячейке памяти, либо к вычислению значения с использованием значения любого объекта в той же ячейке памяти, и они потенциально не параллельны (4.7), поведение не определено. [Примечание: в следующем разделе налагаются аналогичные, но более сложные ограничения на потенциально параллельные вычисления. — примечание в конце]
Это означает, что вычисление параметров функции должно быть непоследовательным, если только это не запрещено какими-либо другими пунктами стандарта. Я попытался найти подстроку «неопределенно» в стандартном тексте, и ни одно из 10 вхождений не выглядит релевантным для аргументов вызова функции.
Итак, вопрос: являются ли параметры функции неупорядоченными или неопределенно упорядоченными в С++ 17?