Презентация Николая Хосуттиса "Кошмар инициализации в C++" на CppCon 2018 содержала в какой-то момент следующий фрагмент кода:
std::vector< std::string > v07 = {{ "1", "2" }};
Николай сказал следующее (транскрипция моя):
Проблема в том, что здесь происходит, мы интерпретируем эти два параметра как итераторы. Итак, это итераторы, так что это начало диапазона, и это конец диапазона, и они должны ссылаться на тот же диапазон символов; потому что символы неявно преобразуются в строки, это скомпилирует. Если вам повезет, вы получите coredump. Если нет, у вас есть большая проблема.
Он потерял меня там. Может кто-нибудь объяснить, что здесь происходит, точно, шаг за шагом?