#c #c 17
#c #c 17
Вопрос:
попытка кусочного построения карты (в map of maps) со списком инициализаторов, получение синтаксической ошибки:
std::unordered_map<int, std::unordered_map<int, int>> map;
map.emplace(std::piecewise_construct,
std::forward_as_tuple(1),
std::forward_as_tuple(std::initializer_list<std::pair<int, int>>{{1,1}}));
попробуйте здесь: https://onlinegdb.com/S1tzFQkDv
Комментарии:
1. Пожалуйста, добавьте полные ошибки компиляции к вашему вопросу. Людям легче понять, что происходит, полагаясь на внешние инструменты, которые помогут вам здесь 🙂
2. @JoelBodenmann в типичном режиме c это создает более 2 страниц сообщений об ошибках, публикация этой ошибки здесь не имеет большого значения, но серьезно снижает читаемость вопроса. я считаю, что внешний инструмент в этом случае является меньшим злом.
3. @hmad Джоэл прав, обычно в вопрос добавляется полная ошибка. Он будет отображаться в прокручиваемом окне, поэтому его длина не повредит.
Ответ №1:
Тип ключа в initializer_list
должен быть const
:
std::unordered_map<int, std::unordered_map<int, int>> map;
map.emplace(std::piecewise_construct,
std::forward_as_tuple(1),
std::forward_as_tuple(std::initializer_list<std::pair<const int, int>>{{1,1}}));