2013-01-04 51 views
1

我下載並安裝了Microsoft's pre-release C++ compiler for Visual Studio 2012。我所有配置的項目平臺工具集都設置爲:「Microsoft Visual C++編譯器2012年11月CTP(v120_CTP_Nov2012)」。VS2012使用C++編譯器2012年11月CTP(v120)強調假錯誤

這使我的項目可以使用Microsoft在其預發行版中實現的新C++ 11功能。使用新功能的代碼編譯並運行得非常好,但我仍然會得到紅色的下劃線,就好像我的代碼有錯誤一樣。

到目前爲止,我最好的選擇是完全禁用「C/C++ Squiggles」。有什麼辦法可以讓Visual Studio 2012意識到我正在編譯v120,並相應地進行縮放?

下面的代碼運行正常:

int values[] {4, 3, 2, 1, 0}; 

for(int i : values) 
{ 
    std::cout << i << ' '; 
} 

它產生的輸出:

4 3 2 1 0

然而,的Visual Studio 2012突出的第一在彎彎曲曲的紅色,與工具提示:

int values[]
Error: incomplete type is not allowed

+0

IMO的波形不適用於C++程序員,應該禁用!智能感知錯誤什麼也不做,只是增加「錯誤」數量。 – Ajay

回答

8

你不用編譯v120。你正在編譯v120 CTP。 CTP代表「社區技術預覽」,並且「預覽」位的一部分是智能感知不識別任何新的構造。這種行爲通過CTP的設計得到了有效的解決,並且不會被修復,也沒有解決方法。

您必須等待Microsoft完成錯誤修復CTP並將其作爲正確更新發布,這可能包含對新功能的Intellisense支持。

+0

技術預覽標記爲v120,IIRC。 – Xeo

+1

是的,我只是改變了這一點。對我來說似乎很奇怪,但嘿。這點仍然非常有效。 – Puppy

+0

是的,具體來說,CTP包含* only *編譯器更新和'',沒有別的。 – Xeo