クラス内クラスにはインテリセンスが働かない?

とまあ、タイトル通りの意味です。
実装部をcppに入れちまう処理としてエンベロープパターンっていうのがあるんですが、次のように書きますよね。

[classA.h]
class ClassA
{
    class CImpl;
    CImpl* m_pImpl;
public:
    void Func1(); // .cppでm_pImpl->Func1()を呼び出す
    void Func2(); // .cppでm_pImpl->Func2()を呼び出す
};

まあやり方は色々あると思いますが、ここでは「C++ Coding Standards」を参考にしました*1
このとき、.cpp側のコードは下のようになると思うのですが、実装コードを書く場所によって、インテリセンスが効いたり効かなかったりするのです。

[classA.cpp]
ClassA::CImpl
{
public:
    void Func1() {
    // Intellisenseがはたらく
    }
    void Func2();
};

void ClassA::CImpl::Func2()
{
// ここではIntellisenseが働かない!!
}

というわけなので、インテリセンス使いたさに実装部のコードはFunc1()のようにクラス定義内に直接埋めてます。
なんだか負けた気分です… orz

*1:本当はshared_ptrとかあるんですけど話がややこしいので