nullptr

¿Qué es exactamente nullptr?

Ahora tenemos C++11 con muchas características nuevas. Una interesante y confusa (al menos para mí) es la nueva nullptr. Bue ... clave y una instancia de un tipo? Además, ¿tienes otro ejemplo (junto al de Wikipedia) donde nullptr es superior al viejo 0?

¿Cuáles son las ventajas de usar nullptr?

Este fragmento de código conceptualmente hace lo mismo para los tres punteros (inicialización segura del puntero): int* p1 ... NULL; int* p3 = 0; Y entonces, ¿cuáles son las ventajas de asignar punteros nullptr sobre asignarles los valores NULL o 0?

¿Es seguro #definir NULL nullptr?

He visto la siguiente macro en muchos archivos de encabezado superiores: #define NULL 0 // C++03 En todo el código, NULL ... egativo ? Puedo pensar en el único efecto secundario (bueno) ya que el siguiente uso se volverá mal formado; int i = NULL;

¿Puede la macro NULL ser realmente un nullptr?

Según el borrador de la norma N4713 (7.11/1): Una constante puntero nulo es un literal entero (5.13.2) con valor cero o ... nullptr_t el código no es válido. ¿Hay algo que no tomé en cuenta o NULL macro no se puede definir realmente como nullptr?

C++11 Al borrar ptr compartido, ¿debo usar reset o establecer en nullptr?

Tengo una pregunta sobre las mejores prácticas de C++11. Al borrar un shared_ptr, ¿debo usar la función reset() sin parámetr ... "foo")); foo.reset(); foo = nullptr; ¿Hay alguna diferencia real, o hay ventajas/desventajas en cualquiera de los enfoques?

Funciones virtuales puras en C++11

En C++98, el puntero nulo estaba representado por el literal 0 (o de hecho cualquier expresión constante cuyo valor era cero) ... irtual void foo() = nullptr; }; ¿por Qué esto no funciona? ¿No tendría sentido? Es simplemente un descuido? ¿Se arreglará?

¿El comportamiento estándar de los deleters difiere entre el rpp compartido y el rpp único en el caso de los punteros nulos?

OK, así que primero algunas cosas que podrían ser relevantes: Estoy usando el compilador Clang 3.1, en modo C++11, con la b ... miento especificado difiere entre los dos tipos STL de esta manera? Si no es así, ¿es un error que debería reportar a libc++?

¿Por qué 'void * = 0' y` void* = nullptr ' marcan la diferencia?

Estaba jugando con SFINAE y encontré un comportamiento que no puedo explicar. Esto compila bien : template<typename In ... tución, por lo que tendré algo como void* = 0 entre la lista de parámetros de la plantilla. ¿Por qué rompe la compilación?..