如何通过宏检查是否使用了 GNU libstdc++?

2024-04-11

如何通过宏检查是否使用了 (GNU GCC) libstdc++ STL 实现?那可能吗?我希望它能在 GCC 和 Clang 中工作。

对于 Linux 上的 C++11,它可能是唯一的选择(或者是吗?)。 (据我所知,STLport 不支持 C++11。)在 MacOSX 上,如果您使用 Clang(也许也适用于 GCC,不确定),则 (LLVM) libc++ STL 更有可能。


您可以检查__GLIBCXX__ (or __GLIBCPP__,对于 3.4.0 之前的版本)宏存在,在包含 C++ 标准包含文件之一之后(cstddef是一个不错的选择):

#include <cstddef>
#if defined(__GLIBCXX__) || defined(__GLIBCPP__)
  /* Using GNU GCC libstdc++, so using also its STL implementation */ 
#endif

在这里阅读更多内容:

  • https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_macros.html https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_macros.html
  • https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html
  • https://gcc.gnu.org/onlinedocs/gcc-4.9.1/cpp/If.html https://gcc.gnu.org/onlinedocs/gcc-4.9.1/cpp/If.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过宏检查是否使用了 GNU libstdc++? 的相关文章

随机推荐

  • 根据显示器分辨率缩放网站?

    我正在寻找一个 JavaScript 来根据浏览者的屏幕分辨率更改网站的缩放 我在桌面上制作了 1920x1080p 的网站 html moz transform scale 0 75 0 75 zoom 0 75 zoom 75 我在我的
  • 无法通过 JNDI 查找 OSGI 服务

    我正在使用 JBossAS7 我的应用程序有一些 OSGI 模块和大型非 OSGI 部分 我尝试通过 JNDI 在非 osgi 子系统中查找 osgi 服务 但它们不存在于 JNDI 上下文中 我发现类似的问题JBOSS 7 JNDI 树中
  • 在程序集中搜索所有子类型?

    我想找到从基 接口继承的所有类型 有人有一个好的方法来做到这一点吗 有想法吗 我知道这是一个奇怪的请求 但我仍然在玩它 使用 Assembly GetTypes 获取所有类型 并使用 Type IsAssignableFrom 检查继承 如
  • 通过 Android Intent 共享位图

    在我的 Android 应用程序中 我有一个位图 比如 b 和一个按钮 现在 当我单击按钮时 我想共享位图 我正在使用下面的代码onClick 为了达成这个 Intent intent new Intent Intent ACTION SE
  • Bash 脚本 - 自动填写答案

    我有一个 bash 脚本 其中有几个问题 是否可以自动填写答案 script sh install 按顺序回答y 2 1 n n 我怎样才能在 bash 中做到这一点 编辑 是否可以只通过第一个答案 echo y install 并让用户选
  • C++ - 重复使用 istringstream

    我有一个代码用于读取在线存储的浮点数文件 如下所示 3 34 2 3409 1 0001 1 1 我想使用 istringstream 阅读它们 但它并不像我预期的那样工作 string row string strNum istrings
  • ios8 中 iphone 的 UIPopoverController 显示白屏

    在 iphone 中使用 ios8 0 以下的 UIPopovercontroller 可以正常使用此代码 但在ios8中却显示白屏 Code pickerController UIViewController alloc init UIV
  • CSS 伪元素上的事件侦听器,例如 ::after 和 ::before?

    我有一个div带有 CSS 伪元素的元素 before用作关闭按钮 而不是使用实际按钮 如何应用事件侦听器only伪元素 HTML div div CSS box before background image url close png
  • 在 Eclipse 中更改概览标尺颜色

    如何更改概览规则背景Eclipse 3 4 0 I20080617 2000 中的颜色 编辑窗口右侧的垂直条 带有一些注释 常规 gt 编辑器 gt 文本编辑器 gt 注释仅允许更改标记本身的颜色 而不是整个栏的背景 看来我的网络搜索能力越
  • Laravel afterFind 回调事件

    laravel 中是否有像 cakePHP 中那样的 afterFind 模型事件 以便我可以在任何搜索查询后格式化数据 或任何其他方式来做到这一点 Thanks 它不是一个事件 而是一个可以在模型中设置的变异器 您只需在模型中创建一个名为
  • 导出 eclipse 可部署插件和片段时出错

    我有一个 Eclipse 插件在 Eclipse 环境中运行良好 我想将其导出为 jar 文件 因此我选择了 导出 gt 可部署插件和片段 我可以得到一个jar文件 但是报告了一个错误 打开日志文件 它报告我有 1242 个问题 191 个
  • 从顶部裁剪图像

    通过设置从底部 左侧或右侧裁剪图像非常容易overflow hidden图像容器的属性 div class img container img class img src img jpg div 有没有办法从顶部裁剪图像 如果正在调整窗口大
  • 如何为react-big-calendar(fullcalendar.js)设置momentLocalizer(moment.js)?

    我在用着反应大日历 https github com intljusticemission react big calendar并需要帮助来实现所需的本地化 来自 git 的示例 import BigCalendar from react
  • 加载巨大的 XML 文件并处理 MemoryError

    我有一个非常大的 XML 文件 准确地说是 20GB 是的 我需要全部 当我尝试加载该文件时 收到此错误 Python 23358 malloc mmap size 140736680968192 failed error code 12
  • 无法在 iOS 6 中以编程方式安装 ipa 文件

    我使用 MobileInstallationInstall 在越狱 iOS 中安装 ipa 文件 在iOS5中运行良好 但在iOS6中失败 我检查了日志并发现以下内容 需要有一个名为 com apple private mobileinst
  • C 易失性变量和高速缓存

    缓存是由缓存硬件对处理器透明地控制的 因此如果我们在C程序中使用易失性变量 如何保证我的程序每次都从指定的实际内存地址读取数据而不是缓存 我的理解是 Volatile 关键字告诉编译器不应优化变量引用 而应按照代码中的编程方式读取变量引用
  • MongooseError:Model.findOne() 不再接受回调

    考虑 app get posts postId function req res const requestedPostId req params postId Post findOne id requestedPostId functio
  • 检查一个值集合是否包含另一个值集合

    假设我有两个集合 如下所示 收藏1 A1 A1 M1 M2 收藏2 M2 M3 M1 A1 A1 A2 所有值都是字符串值 我想知道 Collection1 中的所有元素是否都包含在 Collection2 中 但我不能保证顺序 并且一个集
  • 如何获取Google服务帐户访问令牌javascript

    我正在尝试为我的网站设置一个分析仪表板 以便我的领导层查看网站使用情况 我不希望他们必须拥有谷歌帐户或单独添加他们才能看到结果 我已经设置了服务帐户和 OAuth2 访问权限 我找到的所有教程都显示这样的代码 gapi analytics
  • 如何通过宏检查是否使用了 GNU libstdc++?

    如何通过宏检查是否使用了 GNU GCC libstdc STL 实现 那可能吗 我希望它能在 GCC 和 Clang 中工作 对于 Linux 上的 C 11 它可能是唯一的选择 或者是吗 据我所知 STLport 不支持 C 11 在