のコンパイラサポートを待つのにうんざりしましたnullptr
(gcc 4.6はサポートしますが、新しいいくつかのディストリビューションがサポートしています)。
それで、完全にサポートされるまでのストップギャップとして、nullptr
私はそれをエミュレートすることにしました。エミュレーションには2つの例があります。1つはここから、もう1つはウィキブックスからです。
注目すべきことに、どちらの実装も。について言及していませんoperator ==
。ただし、これがないと、次のコードはコンパイルされません。
int* ptr = nullptr;
assert( ptr == nullptr ); // error here: missing operator ==
このoperator ==
エラーはコンパイラのバグですか?より完全にエミュレートするには(および、、、など)が
必要operator ==
です!=
か?エミュレートされた取引と実際の取引の
違いは他にありますか?<
<=
nullptr
nullptr