When all does comma operator not act as a comma operator?
If you see this code, class A{ public: A(int a):var(a){} int var; }; int f(A obj) { return obj.var; } int main() { //std::cout<<f(23); // output: 23 std::cout<<f(23, 23); // error: too many arguments to function 'int f(A)' return 0; } f(23, 23) does not compile because the comma acts as a separator here and not as a comma operator. Where all does a comma not work as a comma operator? Or the other way around? CB Bailey From a grammatical point of view, the parameters of a function call form an optional expression-list inside parentheses. An expression-list consists of one or more assignment