Question Details

No question body available.

Tags

c++ language-lawyer

Answers (1)

July 21, 2026 Score: 0 Rep: 496,254 Quality: Medium Completeness: 80%

I think @NathanOliver has given the correct answer in a comment: ([expr.call]/3):

The postfix-expression is sequenced before each initializer-clause in the expression-list and any default argument.

The rest of this is more of an extended comment. People have asked about situations where the sequencing would matter. One such possibility would be to create a vector (or array, etc.) of pointers to functions. Initialize an iterator to the first pointer in that array.

Then call the function with a post-increment on the iterator.

For example consider this code:

#include 
#include 
#include 

using decoy = struct { char foo[8]; };

using func = void ()(decoy); extern std::vector funcs; using Iter = std::vector::iterator;

void foo(decoy i) { auto ii =
reinterpret_cast(&i); assert(*ii = funcs[1]); } void bar(decoy) { std::cout