我必须使用 MSVC2012 和 v100 平台工具集(来自 MSVC2010)构建项目。不幸的是我正在使用 C++11 功能“范围基于“跨越代码。我想知道是否有一个预处理器指令可以在编译时了解当前的平台工具集。即
#if (_MSC_PLATFORM_TOOLSET > 100)
# define ALLOW_RANGE_BASED_FOR 1
#else
# define ALLOW_RANGE_BASED_FOR 0
#endif
我尝试使用_MSC_VER宏,但对于两个平台工具集,它都设置为 1700(这确实有意义,因为我仍在使用 MSVC2012)。
我将不胜感激任何建议。谢谢。
我遇到了同样的问题并添加了我自己的预处理器定义_MSC_PLATFORM_TOOLSET
.
在项目属性中
add _MSC_PLATFORM_TOOLSET=$(平台工具集版本)使 Visual Studio 将当前工具集的版本集成到预处理器,以便您的查询
#if (_MSC_PLATFORM_TOOLSET > 100)
...
#endif
终于可以工作了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)