VS2012 使用 C++ 编译器 2012 年 11 月 CTP (v120) 强调错误错误
Posted
技术标签:
【中文标题】VS2012 使用 C++ 编译器 2012 年 11 月 CTP (v120) 强调错误错误【英文标题】:VS2012 Using C++ Compiler Nov 2012 CTP (v120) Underlines False Errors 【发布时间】:2012-12-18 18:33:32 【问题描述】:我下载并安装了Microsoft's pre-release C++ compiler for Visual Studio 2012。我的项目所有配置的平台工具集都设置为:“Microsoft Visual C++ Compiler Nov 2012 CTP (v120_CTP_Nov2012)”。
这允许我的项目使用 Microsoft 在其预发布版本中实现的新 C++11 功能。使用新功能的代码编译并运行得非常好,但我仍然得到红色下划线曲线,好像我的代码有错误一样。
到目前为止,我最好的选择是完全禁用“C/C++ Squiggles”。有什么方法可以让 Visual Studio 2012 意识到我正在使用 v120 进行编译,并相应地 squiggle?
示例
以下代码按预期运行:
int values[] 4, 3, 2, 1, 0;
for(int i : values)
std::cout << i << ' ';
它产生输出:
4 3 2 1 0
然而,Visual Studio 2012 用波浪形的红色强调了第一个 值,并带有工具提示:
int values[] 错误:不允许不完整的类型
【问题讨论】:
IMO 曲线不适用于 C++ 程序员,应该禁用! IntelliSense 错误什么都不做,只是增加“错误”计数。 【参考方案1】:您没有使用 v120 进行编译。您正在使用 v120 CTP 进行编译。 CTP 代表“Community Technology Preview”,部分“Preview”位是 Intellisense 无法识别任何新结构。此行为是为 CTP 设计的,不会被修复,也没有变通方法。
您必须等待 Microsoft 完成对 CTP 的错误修复并将其作为适当的更新发布,其中可能包含对新功能的 Intellisense 支持。
【讨论】:
是的,我刚刚改了。对我来说似乎很奇怪,但是嘿。这点还是很有道理的。 是的,具体来说,CTP只包含编译器更新和<initializer_list>
,仅此而已。
这是我的一个负担,我尝试了很多 C++11 功能,但因为曲线而放弃。现在我知道也要尝试编译它。
@Puppy 有没有链接可以下载 Visual Studio 2012 的官方 c++11?我只能在 google 上找到 CTP 版本。提前致谢!以上是关于VS2012 使用 C++ 编译器 2012 年 11 月 CTP (v120) 强调错误错误的主要内容,如果未能解决你的问题,请参考以下文章
为啥我无法在 win64 上使用 boost 1.54 编译 VS2012 C++ 代码?
编译 VS 2012 C++ 项目时出现致命错误无法运行“mt.exe”