C ++ 11: строка (50, 'x') против строки {50, 'x'}

Как видно наideone:

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

WAT??

Я понял, что 50 - это ASCII '2', поэтому:

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

Но это насколько я могу.

Приводит ли это к серьезному аргументу против инициализаторов C ++ 11?

Ответы на вопрос(1)

Ваш ответ на вопрос