gpt4 book ai didi

c++ - 使用 Autoconf 处理已弃用的包含

转载 作者:太空宇宙 更新时间:2023-11-04 12:28:14 24 4
gpt4 key购买 nike

我一直在 C++ 项目中使用 ext::hash_map,并注意到在 g++ 4.3 中它已被弃用,取而代之的是 unordered_map。我需要保持与没有可用 unordered_map 的旧系统的兼容性。我突然想到,这正是我已经在使用的 autoconf 可以处理的事情。但是,我未能找到有关这样做的文档。

我想我需要做如下的事情:
- 用 MY_HASH_MAP
替换我代码中的所有 ext::hash_map 实例 - 用 MY_HASH_INCLUDE
替换我代码中的所有 ext/hash_map 实例 - 使用 AC_CHECK_HEADERSAC_DEFINE

的某种组合在 configure.ac 中包含一行

我一直没能找出正确的 autoconf 魔术来使这项工作正常进行,我想知道它是否是最好的解决方案。这肯定是许多其他人会处理的事情,并且可能有一些我一直无法找到的标准解决方案?

那么,三个相关的问题:
- 是否有我应该使用的处理此问题的标准方法?
- 我如何在 autoconf 中执行此操作?
- 我是否应该只使用 -Wno-deprecated 并假设 C++ 标准在我的一生中不会更新?

最佳答案

您可以使用 AC_CHECK_HEADERS([my_header_file]) 查看存在哪些文件——然后创建一个新的 class MyApp::hash_map,这取决于定义的内容used 相应地包装了功能。

关于c++ - 使用 Autoconf 处理已弃用的包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/848815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com