Я использовал ext::hash_map
в проекте C ++ и заметил, что в g ++ 4.3 он устарел в пользу unordered_map
. Мне нужно поддерживать совместимость со старыми системами, у которых нет unordered_map
. Мне приходит в голову, что это как раз то, что может быть обработано autoconf, который я уже использую. Однако мне не удалось найти документацию по этому вопросу.
Я бы предположил, что мне нужно сделать что-то вроде следующего:
- Заменить все экземпляры ext::hash_map
в моем коде на MY_HASH_MAP
- Заменить все экземпляры ext/hash_map
в моем коде на MY_HASH_INCLUDE
- Включите строку в файл configure.ac, используя комбинацию AC_CHECK_HEADERS
и AC_DEFINE
.
Я не смог точно определить правильную магию автоконфинга, чтобы заставить это работать, и мне интересно, является ли это даже лучшим решением в любом случае. Конечно, с подобными вещами придется столкнуться многим другим людям, и может быть какое-то стандартное решение, которое мне не удалось найти?
Итак, три связанных вопроса:
- Есть ли стандартный способ обработки этого, который я должен использовать?
- Как мне это сделать в autoconf?
- Должен ли я просто использовать -Wno-deprecated и предположить, что стандарт C ++ не будет обновляться при моей жизни?