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