我在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/