Я устал ждать поддержки компилятором nullptr
( gcc 4.6 делает , но так мало новых дистрибутивов поддерживают его).
Так что в качестве пробела до полной поддержки nullptr
я решил подражать ему. Есть два примера эмуляции: один из здесь , а другой из wikibooks .
Следует отметить, что ни одна из реализаций не упоминает operator ==
. Однако без него следующий код не скомпилирует .
int* ptr = nullptr;
assert( ptr == nullptr ); // error here: missing operator ==
Эта operator ==
ошибка - ошибка компилятора?
operator ==
(и !=
, <
, <=
и т. Д.) Необходимы для более совершенной эмуляции nullptr
?
Что еще отличается между эмулируемой nullptr
и реальной сделкой?