Элементы в <map.h>
находятся в глобальном пространстве имен, в то время как элементы в <map>
находятся в пространстве имен std. Скорее всего, вы просто обращались непосредственно к глобальным версиям, и когда вы переключились на <map>
, вы больше не видели их, потому что они перешли на std::
. В исходных файлах добавьте using namespace std
, чтобы быстро двигаться дальше. В заголовках вы должны квалифицировать использование связанных с картой предметов с помощью std::
.
Я думаю, вам нужно будет квалифицировать значение константы литерала с помощью конечного UL, чтобы он знал правильный тип литерала.
Скорее всего, перечисления находятся в двух отдельных ОС, определенных анонимных перечислений. Вы можете static_cast их, чтобы отключить предупреждение.
Нет представления о многобайтовых символах.
Можете ли вы отключить -fwritable-строки? Можете ли вы провести рефакторинг кода, который должен изменять константные строки?