У меня есть вопрос о различных значениях вложенного списка фигурных скобок.
Я знаю, что С++ 03 не поддерживал С++ 11 initializer_list
. Тем не менее, даже без флага компилятора -std=c++11
, gcc 6.3 будет правильно инициализировать interpolate
с помощью этого кода:
map<string, string> interpolate = { { "F", "a && b && c" }, { "H", "p ^ 2 + w" }, { "K", "H > 10 || e < 5" }, { "J", "F && !K" } };
Мне поставили под сомнение, почему это сработает, и я понял, что у меня нет ответа. Это список бит-Init-List, но путь, который мы получаем от инициализации стандартного контейнера, обычно осуществляется через initializer_list
. Итак, как бы код, не относящийся к С++ 11, выполнял инициализацию?