C ++ 11: cadena (50, 'x') versus cadena {50, 'x'}

Como se ve enideona:

cout << string(50, 'x'); // xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
cout << string{50, 'x'}; // 2x

WAT ??

He descubierto que 50 es ASCII '2', así que:

cout << static_cast<int>('2'); // 50
cout << static_cast<char>(50); // 2

Pero eso es todo lo que tengo.

¿Esto lleva a un argumento sólido contra los inicializadores de C ++ 11?

Respuestas a la pregunta(1)

Su respuesta a la pregunta