C ++ 11编译器兼容性表

时间:2015-03-08 06:23:07

标签: visual-studio c++11 cross-platform

我正在开发一个相当大的库,我正在设计它可以跨编译器和平台移植。使用的主要语言是C ++ 11,但我正在尝试使用预处理器宏为尚未提供完全一致性的编译器提供回退。

GCC拥有所有supported/unsupported C++11 features的完整列表,以及他们首次提供支持的版本 - 但我似乎找不到任何等效的MSVC列表。实际上,我可以找到列表支持的唯一表格,严格列出首次引入它的Visual Studios version,而不是MSVC版本。

所以我的问题是:在MSVC中为C ++ 11功能首次引入支持的内部版本号是什么?我发现很难想象每次完整版本发布都会进行更改。

如果没有这方面的答案,那是否意味着我必须根据Visual Studio版本来定位它?如果是这样,我如何将版本严格按其名称翻译为内部__MSC_VER__MSC_FULL_VER

修改

只是为了澄清,我正在努力使它能够检测Visual Studio中何时实现特定的C ++ 11功能。例如,使用gcc,版本4.6中引入了constexpr,允许我查看:

#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
// Do something
#endif

理想情况下,我正在尝试使用__MSC_VER做同样的事情。问题很简单,我不知道每个主要版本发布的每个功能的版本。

0 个答案:

没有答案