C++0xではヌルポインタを表すキーワードであるnullptrが追加されます。 C++03では、NULLマクロ、0リテラル等でヌルポインタを表現していましたが NULLマクロと0リテラルは、関数テンプレートで使用すると、テンプレートによってint型に推論されてしまいます。 template <class T> void foo(T p) { } int* p; foo(p); // Tはint*型 // ヌルポインタを渡したつもり foo(0); // Tはint型 foo(NULL); // Tはint型 C++0xのnullptrキーワードは、T*の0として機能するため、テンプレートでも問題なく使用できます。 int* p = nullptr; C++0x言語拡張まとめ