nullptr idiomでエラーになる
C++0xで導入されるnullptrを
C++03のライブラリレイヤでがんばるメソッド nullptrイディオム をゆっくり写経
…してみたらエラー.
イディオムの詳細はC++Idiomsを参照.
エラー1(というか03で対応できないケース)
int main () { struct S { int f (void) const { return __LINE__; } }; int (S::*pmf)() = np::nullptr; // 0xじゃないとだめ S ms = {}; pmf = &S::f; cout << "S::f() " << (ms.*pmf)() << endl; } $ g++ nullptr.cpp error: cannot convert ‘const jefuty::nullptr::nullptr_t’ to ‘int (main()::S::*)()’ in initialization
これはローカルクラスはテンプレート引数に出来ないからエラーかと考えられます.
struct Sの定義を関数の外に出してやるとコンパイル出来ます.
もしくは-std=c++0x付ければいいですけど0xならnullptrが組み込みなんだから無意味という(^^;;