инициализация глобальной переменной c ++ (вектор initializer_list) - PullRequest
3 голосов
/ 30 апреля 2020
#include <iostream>
#include <initializer_list>
#include <vector>

auto const v = std::vector<std::initializer_list<int>>{ { 0, 1, 2 }, { 3, 4 } };

int main()
{
    for (auto const& l : v)
        for (auto const& i : l)
            std::cout << i << " ";
}

Этот код выводит мусор, например: 13386064 0 -1305220240 32764 0 (под несколькими разными компиляторами).

Если я изменю v на std::vector<std::vector<int>> или переместу определение в main, он печатает 0 1 2 3 4, как и ожидалось.

Почему?

...