Как видно на ideone:C++ 11: строка (50, 'х') в зависимости от последовательности {50, 'х'}
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?
Конструктор 'initializer_list'' string' принимает список символов, поэтому. –
([см. Соответствующую документацию.] (Http://en.cppreference.com/w/cpp/string/basic_string/basic_string)) –
Чтобы ответить на последнюю строку: Нет, это не так. Это просто означает, что вы должны понимать, что они делают. – Cubic