Como o operador de vírgula está sendo usado aqui? [duplicado]

Duplicata Possível:
Operador C ++ Comma
Usos do operador de vírgula C

Eu não sou novo em C ++, mas esta é a primeira vez que vejo o seguinte código:

int a=0;
int b=(a=2,a+1);

Isso é código C ++. Você pode me dizer o que está acontecendo aqui? E como variável b recebe valor 3?