Wann fungiert der Kommaoperator nicht als Kommaoperator?

Wenn Sie diesen Code sehen,

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) wird nicht kompiliert, da das Komma hier als Trennzeichen und nicht als Kommaoperator fungiert.

Wo macht alles ein Kommanich Arbeit als Kommaoperator? Oder umgekehrt

Antworten auf die Frage(10)

Ihre Antwort auf die Frage