Итак, я пытаюсь сделать что -то вроде: < /p>
int main() {
static const std::unordered_map bla = {{0, 1}, {1, 2}};
static const std::unordered_map blo = {{3, 1}, {4, 2}};
static const std::unordered_map foo = {{1, &bla}, {2, &blo}};
}
< /code>
в CPP. Попытка скомпилировать это даст мне ошибку: < /p>
main.cpp:9:96: error: could not convert '{{1, (& bla)}, {2, (& blo)}}' from '
' to 'const std::unordered_map'
static const std::unordered_map foo = {{1, &bla}, {2, &blo}};
< /code>
Странная вещь: у меня есть доступ к кодовой базе, которая имеет такие строки, как: < /p>
#include "myMaps/myMap1.h"
#include "myMaps/myMap2.h"
static const std::unordered_map mapOfMaps = {
{"map1", &myMap1}, {"map2", &myMap2}};
< /code>
где mymap 1 и 2 определяются как: < /p>
const std::unordered_map myMap = {
{"KEY1", 0x00000000},
{"KEY2", 0x00000001}};
< /code>
и эта кодовая база (слишком большая, чтобы публиковать его в том, что здесь все) компилируется в той же среде. Так почему же первая попытка не работает, но вторая? Ошибка компиляции довольно общая, поэтому трудно найти что -то полезное для этого конкретного случая в Интернете ...
Что я делаю не так?
Подробнее здесь: https://stackoverflow.com/questions/796 ... -maps-in-c