nullptr_t ejemplo dev c++ c++11 null nullptr

c++ - ejemplo - nullptr vs null



Cuando NULL no puede ser reemplazado por nullptr? (1)

En la práctica, debería ser bastante seguro.

Pero, técnicamente, es posible que el significado de su programa cambie, sin causar ningún error de compilación. Considere el siguiente programa :

void foo(int) { std::cout << "int/n"; } void foo(int*) { std::cout << "int*/n"; } int main() { foo(NULL); // prints ''int'' foo(nullptr); // prints ''int*'' return 0; }

Tenga en cuenta que cuando hay ambigüedad entre un int y un puntero al pasar NULL , la versión del puntero es lo que casi siempre se desea, lo que significa que la mayoría de los programas reales no tendrán una ambigüedad como esa en primer lugar (o usarán moldes como (int*)NULL para (int*)NULL , en cuyo caso el reemplazo por nullptr está perfectamente bien).

Estoy refaccionando un código anterior que usa NULL en muchos lugares. La pregunta es

¿Es seguro reemplazar ciegamente todas las instancias NULL por nullptr ?

Estoy particularmente interesado en el escenario donde reemplazar NULL por nullptr puede dar lugar a algunos errores de tiempo de ejecución (los errores de tiempo de compilación estarían bien) pero no puedo pensar en ninguno. Si no, ¿sería seguro simplemente reemplazar automáticamente NULL por nullptr (corregir los errores de tiempo de compilación, en su caso).

Me disculpo si la pregunta se me hubiera hecho antes. No pude encontrarla, la eliminaré si me indica la respuesta.