Если NULL
определено как ((void*)0)
, вы можете получить предупреждение. Указатели объектов несовместимы по типу с указателями функций. Используйте простой 0
вместо NULL
. 0
- это константа нулевого указателя, совместимая как с указателем на функцию, так и с указателем на объект.
РЕДАКТИРОВАТЬ Извините, я не обращал должного внимания. Здесь указатель функции member , а не просто указатель на функцию. Сравнение с ((void*)0)
также противоречит правилам, и многие компиляторы будут выдавать ошибки , а не только предупреждения.
РЕДАКТИРОВАТЬ 2 Всем, кто прокомментировал: я знаю, что соответствующий компилятор C ++ не определит NULL как ((void*)0)
. Проблема в том, что существуют несоответствующие компиляторы и неработающие сторонние библиотеки (я видел оба).