我创建了一个接受函数指针的函数,例如
typedef CString(*GetLabelFunc)(const CSomeObject* const pObject);
void DoSomething(GetLabelFunc funcGetLabel);
该函数可能会接收一个空指针并在这种情况下返回一个空字符串。当使用 NULL 和 nullptr 作为参数时,这在 MSVC++ 2010 中工作得非常好 - 但我不认为在这种特殊情况下成功编译是安全港......
现在我想知道传递nullptr
是否等同NULL
于函数指针。我问的原因是例如void*
不接受函数指针(或者至少不应该使用它)。所以也许有类似的原因 nullptr 不应该用于函数指针 - 这意味着它是否设计为仅适用于对象指针?