I have been looking through some MFC code and i came across this expression. It was in OnInitDialog() function, didn't look like it's MFC specific. The variables had some name, value was 0.
int volatile something, somethingElse; //this was global
something, somethingElse = 0; //this was inside the function
Does this make any sense in C++? I know how the comma operator works, though in a free form like here it should be separating expressions. Is a variable name also an expression? This code does compile, so how does this work?
This is likely an error in the program. The statement
Is completely equivalent to
Since the comma operator evaluates from left to right and discards all values except the last. Since the expression a has no side effects, it's essentially a no-op.
I would suspect that this is either programmer error or an incorrect translation of code from a different language into C++. You should contact the author to let them know about this.
Hope this helps!