C++20 added designated initializers, so they're also an option.
my_func({.arg1 = val1, .arg2 = val2}); my_func({.arg1 = val1, .arg2 = val2});Edit: struggling to find a source, though this GCC doc suggests it's C99 (but maybe that's only GCC?) - https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html
(Second place: differences in available GCC/clang compiler extensions between C and C++ [our software does not support Windows/MSVC], third place: differences in what casts are permitted/how they are done)
int foo(int N, char buf[N]);
which I like to use because they improve warning messages, but they are not accepted in C++.