Creé una función que acepta un puntero de función, p. Ej.¿Es seguro asignar nullptr a una variable de puntero de función?
typedef CString(*GetLabelFunc)(const CSomeObject* const pObject);
void DoSomething(GetLabelFunc funcGetLabel);
La función puede recibir un puntero nulo y devolverá una cadena vacía en ese caso. Esto funciona perfectamente bien en MSVC++ 2010 cuando se utiliza NULL y nullptr como parámetro, así - pero no considero una compilación con éxito un puerto seguro en estos casos especiales ...
Ahora me preguntaba si pasando nullptr
es equivalente a NULL
de punteros de función. La razón por la que pregunto es que, por ejemplo, void*
no acepta punteros a las funciones (o al menos no debería usarse). Entonces, tal vez haya una razón similar para que nullptr no se use para punteros a funciones, es decir, ¿está diseñado para funcionar únicamente con punteros a objetos?