AFAIK no puede automatizar desde el código la detección de nullptr
soporte.
En la práctica, se puede leer que, como “ ” imposible, que es un ’ bastante fuerte “ ” yo sepa.
Lo que hay que hacer es, por lo tanto, usar código específico del compilador y/o comando de compilación. Por ejemplo, en cada fuente pertinente añadir un
#include <cpp/nullptr.h>
y en el comando de generación ajustar la ruta de inclusión de manera que para el compilador con nullptr
apoyo, esta recoge una cabecera vacío, mientras que para un viejo compilador que carece nullptr
, se toma un encabezado que lo define à la Meyers (decir).
¡Y luego pruébelo muy bien!
Llamo al concepto general de tener múltiples versiones de un encabezado, con solo uno seleccionado por el comando de compilación, un encabezado virtual . Es posible construir una gran cantidad de maquinaria en torno a eso, incluidas las convenciones que solo tienen sentido en un caso más general. Afortunadamente, ’ no es necesario para este caso en particular, pero quizás valga la pena tenerlo en cuenta.
Resumiendo: hacer que el código fuente C++ hacer las cosas mágicamente no es el camino a seguir aquí. Agregar un poco de ayuda en el nivel de compilación parece correcto. :-)
¿Es correcto? No en realidad no. Si 'NULL' fuera equivalente a' nullptr', no habría habido ninguna razón para introducir la función en primer lugar. ¿Qué nos estás preguntando? Si su código * compila * –
Comprobar esta solución: http://stackoverflow.com/questions/8747005/backporting-nullptr-to-c-pre-c0x-programs – Alexander
'definido (nullptr)' fallará, porque 'nullptr' es una palabra clave, no una definir. – Griwes