NULL == nullptr в C++11?
Asked
Active
Viewed 1.0k times
2 Answers
6
Вот вам пример, когда nullptr лучше, чем NULL:
void f(int) { cout << "f(int)" << endl; }
void f(char*) { cout << "f(char*)" << endl; }
char* s = NULL;
f(s); // f(char)
f(NULL); // f(int)
f(nullptr); // f(char)
VladD
- 206,799
4
Вообще говоря, выражение NULL == nullptr всегда истино, это гарантирует стандарт:
Two operands of type
std::nullptr_tor one operand of typestd::nullptr_tand the other a null pointer constant compare equal.
Но, как вам уже написали, NULL это не то же самое, что nullptr.
dzhioev
- 11,683
- 25
- 38
Это все лучше утрясется в голове, если понимать, то компилятор не видет NULL, он видит обычно вместо него 0 (препроцессор постарался). А вот nullptr виден. И компилятор может сделать анализ.
– KoVadim Dec 06 '13 at 14:43