Utworzono funkcję, która akceptuje wskaźnik funkcji, np.Czy można bezpiecznie przypisać wartość nullptr do zmiennej wskaźnika funkcji?
typedef CString(*GetLabelFunc)(const CSomeObject* const pObject);
void DoSomething(GetLabelFunc funcGetLabel);
Funkcja może otrzymać wskaźnik pusty i zwraca pusty łańcuch w takim przypadku. To działa perfekcyjnie w MSVC++ 2010 przy użyciu NULL i nullptr jako parametr, jak również - ale nie uważam udana kompilacja bezpieczne schronienie w takich szczególnych przypadkach ...
Teraz zastanawiałam się, czy przechodząc nullptr
odpowiada za NULL
wskaźniki funkcji. Powodem, dla którego pytam, jest to, że na przykład void*
nie przyjmuje wskaźników funkcji (lub przynajmniej nie powinno być używane). Być może istnieje podobny powód, dla którego nullptr nie powinien być używany dla wskaźników funkcji - co oznacza, że jest przeznaczony do pracy tylko z wskaźnikami obiektów?