我可以在VS中使用GCC&LLVM的STL标头吗?

时间:2015-01-31 00:22:07

标签: c++ visual-studio stl llvm llvm-clang

我正在使用MSVC ++ 2013,我安装了Clang插件。

但是,由于我使用STL,I'm getting bugs like this one

In file included from C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\map:6:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xtree(1667,3) :  error: cannot compile this try statement yet
            _TRY_BEGIN
            ^~~~~~~~~~

actual code

它们非常多。事实上,头文件只有问题 - 这让我感到困惑。

这是一个真正的编译器错误吗?与MS不相容' STL实施?

如果是这样,我可以修理它吗?

我想过使用GCC或LLVM的标题,但我不知道如何 - 任何指针都会受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

由于你坚持认为环境设置正确,我查找了那个不理解的确切宏。当_HAS_EXCEPTIONS定义为0时,MSVC标头本身包含xstddef时,可能会发生该特定错误。我无法在该宏上找到任何其他条件,因此您的clang似乎正在编译而没有例外。

这敲响了我的脑袋,Clang长时间在窗户上遇到异常问题。根据此链接,它仍然在MSVC兼容模式下:"异常和SEH:最小。 Clang可以解析这两个构造,但不知道如何发出兼容的处理程序。 Clang不能抛出异常但它可以重新抛出它们。" http://clang.llvm.org/docs/MSVCCompatibility.html

答案 1 :(得分:0)

我不认为llvm的libc ++可以用msvc编译。您最好的选择是尝试使用LLVM生成MSVC兼容代码,该代码可以(理论上)与Visual C ++编译代码链接。

http://clang.llvm.org/docs/MSVCCompatibility.html