2012年1月15日日曜日

Visual Studio 2008 で nullptr を使う

nullptr について、詳しいことはここでは説明しません。

VisualStudio では、2010 から nullptr が使えるようになりましたが、
これを VisualStudio 2008 で使えるようにします。

これは非常に簡単です。
More C++ Idioms/nullptr
こちらのイディオムをそのまま使いましょう。
以上、めでたしめでたし。


では、終わりません。


NoStepInto を活用する
nullptr を使えるようになりましたが、1つ問題があります。
ステップイン実行したときに、nullptr_t の operator にステップインしてしまうのです。
これは些細な問題かもしれませんが、 nullptr はプログラムの要所要所に出てきます。
nullptr がある度に、ステップインされるのはうざったいです。
int* F(int* p, int* q, int* r);

int* G()
{
  // F 関数にステップインする際に、 nullptr に3回ステップインしてから
    // ようやく目的の F にステップインする
    return F(nullptr, nullptr, nullptr);
}
そこで、NoSteInto を利用します。
NoStepInto の設定の仕方は、Visual Studio のステップインで特定の関数だけステップインしない方法 を参照してください。

今回は、nullptr_t のメンバにステップインしたくないので、
nullptr_t\:\:.*=NoStepInto
のように設定します。

これで、デバッグ時のうざったさが解消されました。
めでたしめでたし。

0 件のコメント:

コメントを投稿