2007-10-02
■[C++] 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;
トラックバック - http://d.hatena.ne.jp/faith_and_brave/20071002/1191322319
リンク元
- 6 http://d.hatena.ne.jp/uskz/20071002/p1
- 4 http://cpp.ring.hatena.ne.jp/
- 3 http://d.hatena.ne.jp/mb2sync/
- 3 http://d.hatena.ne.jp/uskz/
- 3 http://www.google.com/reader/view/
- 2 http://d.hatena.ne.jp/melt_slinc/
- 2 http://reader.livedoor.com/reader/
- 2 http://www.google.co.jp/reader/view/
- 2 http://www.google.co.jp/search?hl=ja&q=boost+variant+serialization&btnG=Google+検索&lr=
- 2 http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=boost+serialization&num=50