我對用於C++項目的Intellisense有個奇怪的問題。背景:我最近安裝了VS2010 Sp1,並失去了與SQL Server 2008 R2的Intellisense。我嘗試按照建議安裝累積更新7(CU7),但這不起作用。但是,重新安裝SQL Server 2008 R2的確如此。然後我使用CU7更新了SQL Server 2008 R2,並且都很好。現在Intellisense對於C#項目工作正常,但現在對於C++項目來說,它並不像它應該那樣工作(注意:C++項目是而不是 C++/CLI)。
我已禁用預編譯的頭(「不使用預編譯頭」),並具有以下包括:
#include <cmath>
#include <complex>
#include <iostream>
#include "stdafx.h"
#include "globals.h"
using namespace std;
注:據我所知,使用std命名空間並不總是認爲最好的做法,但在這裏它會爲我節省時間,而且不會有模棱兩可的情況。
所以,現在當我想要一個printf語句的例子,如果我輸入printf我得不到Intellisense提示。但是,如果我按Ctrl + Space或Ctrl + J智能感知識別該命令,並顯示出來。以下是Intellisense的圖像不能自動工作。
現在,如果我輸入的std :: printf的,智能感知顯示:
有沒有什麼辦法讓VS2010 /智能感知知道我想使用std命名空間,因爲它出現就像它只是沒有認識到「#using namespace std;」命令。
非常感謝。
如果你禁用了預編譯頭文件,那麼你可以刪除'#include「stdafx.h」'。 – Sjoerd
要清楚:只要你開始輸入「p」而不是在某個可識別的標記處(即在達到「printf(」)之後就想要智能感知彈出)如果是這樣,我不認爲是否有任何方法可以這樣做 - ctrl + space就像你會得到的那樣接近 –
不記得我在哪裏閱讀它,但是VC++ Intellisense在VS2010中使用預編譯頭文件的效果更好,甚至有一些邊界情況,有些功能只適用於預編譯頭文件,當我試圖找出爲什麼我的VS 2010與VS 2008相比如此之慢時,我看到了這一點。爲什麼你禁用了pch? – RedX