c – 完美地模拟nullptr

我厌倦了等待nullptr的编译器支持(gcc 4.6 does,但它是如此新的少数发行版支持它).

因此,作为完全支持nullptr之前的停止间隙,我决定模仿它.有两个仿真示例:一个来自here,一个来自wikibooks.

值得注意的是,两个实现都没有提到运算符==.但是,没有一个,代码为will not compile.

int* ptr = nullptr;
assert( ptr == nullptr ); // error here: missing operator ==

这个运算符==错误是编译器错误吗?
运算符==(和!=,<,< =等)需要更完美地模拟nullptr吗?
模拟nullptr和真实交易之间还有什么不同?

最佳答案
你用C 0x编译器编译它,由于未知原因失败了.它compiles fine in C++03.

转载注明原文:c – 完美地模拟nullptr - 代码日志