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

 手机用户2502940165 发布于 2022-12-20 20:42

如何通过宏检查是否使用了(GNU GCC)libstdc ++ STL实现?那可能吗?我想在GCC和Clang都有这个工作.

对于Linux上的C++ 11,它可能是唯一的选择(或者是它?).(STLport没有C++ 11支持,AFAIK.)在MacOSX上,(LLVM)libc ++ STL更有可能,如果你使用Clang(也许也适用于GCC,不确定).

1 个回答
  • 您可以检查__GLIBCXX__(或者__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/abi.html

    https://gcc.gnu.org/onlinedocs/gcc-4.9.1/cpp/If.html

    2022-12-20 20:47 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有