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;