我在libstdc++中遇到了Bug 58800,这导致我的某些代码出现段错误。我有一个解决方法,但是当有固定版本的libstdc++可用时,我不想使用它。检查libstdc++版本的正确方法是什么(通过ifdef)?而且,理想情况下,此错误影响哪些版本?

最佳答案

libstdc++随GCC一起提供,因此正确的方法是通过测试__GNUC____GNUC_MINOR____GNUC_PATCHLEVEL__ predefined macros来检查GCC版本。

如果您将libstdc++与Clang一起使用,则可以测试__GLIBCXX__ > 20131020UL是否为bug修复的日期。该日期之后的发行版应包含此修复程序。

关于c++ - 识别libstdc++的版本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20709894/

10-16 20:29