Duas strings entre parênteses separadas por uma vírgula em C ++ [duplicado]

Duplicata Possível:
Operador C ++ Comma

Eu me deparei com comportamento inesperado (pelo menos para mim) de C ++ hoje, mostrado pelo seguinte snippit:

#include <iostream>

int main()
{
  std::cout << ("1", "2") << std::endl;

  return 0;
}

Saída:

2

Isso funciona com qualquer número de seqüências entre os parênteses. Testado no compilador visual studio 2010, bem como no controlador remoto.

Eu estou querendo saber por que isso compila em primeiro lugar, o que é o uso deste 'recurso'?

questionAnswers(5)

yourAnswerToTheQuestion