VS2012のIntelliSenseを確実に効かす方法
プリコンパイル対象ヘッダを全ソース共通ヘッダとして使わない
横着な自分はプリコンパイル対象ヘッダを全ソース共通ヘッダとして使っていたのですが、プリコンパイル対象ヘッダはIntelliSenseの解析対象外のようです。
なので、共通ヘッダは別に作って、共通ヘッダをプリコンパイル対象ヘッダでincludeするという方法にします。
// 共通ヘッダ common.h #include <windows.h> #include <d3d9.h>
を書いて、common.h をどっかのソースファイルでincludeすれば、IntelliSense対象になります。
一方、プリコンパイル対象ヘッダは共通ヘッダをincludeするだけにします。
// プリコンパイル対象ヘッダ stdafx.h #include "common.h"
ヘッダの最後には改行を入れる
特定のヘッダをincludeすると、IntelliSenseがちゃんと動かなくなる時があります。その時は、ヘッダの最後に改行が無いことが多いです。
// とあるヘッダ toaru.h #pragma once namespace toaru{ // いろいろ定義 } // 最後が改行で終わって無い!
これだと、IntelliSenseがこけることが良くあります。こういう時は改行を入れます。
// とあるヘッダ toaru.h #pragma once namespace toaru{ // いろいろ定義 } // 最後↓が改行で終わっている
IntelliSenseの動作は、おそらくincludeを解決したソースファイルで解析してるんじゃないかなー、と思います。そのため、続く文字との間にスペースが無いために、IntelliSenseのパースが転けることがあるのかなと。
もちろん、ヘッダの最後に改行が無くても、コンパイルは問題なくできます。