Hatena::ブログ(Diary)

Faith and Brave - C++で遊ぼう このページをアンテナに追加 RSSフィード Twitter

2007-10-02

[] C++0x - nullptr

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言語拡張まとめ

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証