完美地模拟nullptr

def*_*ode 5 c++ null nullptr c++11

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

因此,作为一个止损间隙直到nullptr完全支持我决定模仿它.有两个仿真示例:一个来自这里,一个来自wikibooks.

值得注意的是,两个实现都没有提及operator ==.但是,没有一个,以下代码将无法编译.

int* ptr = nullptr;
assert( ptr == nullptr ); // error here: missing operator ==
Run Code Online (Sandbox Code Playgroud)

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

ybu*_*ill 3

您使用 C++0x 编译器编译它,但由于未知原因而失败。它在 C++03 中编译良好

  • @deft_code:1)你的代码是无效的C++0x,因为它使用关键字nullptr。2) 我 90% 确定这是一个 GCC bug 3) 已经有一个[类似的 bug](http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33990)。 (3认同)