有人能建议一种方法来确定在使用Apple LLVM编译器附带的libc++和libstdc++时c++11支持的差异吗?
特别是,我目前使用的是Xcode 4.5.2附带的LLVM4.1。
据推测,答案部分取决于clang为这个版本提供的c++11支持的级别,部分取决于libc++和libstdc++随4.1一起发布的版本。
我的总体感觉是,现在在使用libc++时,对c++11的支持“几乎完成了”,但是当切换到libstdc++时,您会失去一些东西,但我搞不懂是什么--几个简单的c++11特性似乎在两种情况下都能很好地工作。
我感觉gcc 4.8附带的c++11对libstdc++的支持非常好,但我不知道llvm 4.1附带的libstdc++是否旧。
此外,我感觉在为osx或iOS6.01编译时,c++11支持的级别(使用带有libc++的llvm4.1)没有区别,但我不是很肯定。
对如何弄清楚这一切有什么建议吗?
上下文:由于上游依赖关系,我可能需要链接到libstdc++而不是libc++,所以我想弄清楚我可能会丢失什么
发布于 2012-12-12 05:23:01
LLVM4.1附带的libstdc++是gcc-4.2。该版本不支持C++11。不过,它确实有一些tr1支持。
此外,检查C++11语言特性的最好方法是使用clang的has_feature macro test。
对于C++11库特性,您需要使用libc++。
https://stackoverflow.com/questions/13828229
复制相似问题