Предупреждение компилятора C4867
Обновлен: Ноябрь 2007
Сообщение об ошибке
"функция": в вызове функции отсутствует список аргументов; используйте "вызов" для создания указателя на член
'function': function call missing argument list; use 'call' to create a pointer to member
Недопустимая инициализация указателя на функцию-член.
Это предупреждение может отображаться в результате выполнения действий по обеспечению расширенной совместимости указателей на члены в Visual C++ 2005. В текущей версии при компиляции кода, который не содержал ошибок в версиях, предшествующих Visual C++ 2005, возникает предупреждение C4867. Дополнительные сведения см. в разделе Критические изменения в компиляторе Visual C++ 2005.
Это предупреждение всегда выдается как ошибка. Чтобы отключить это предупреждение, используйте директиву pragma warning. Дополнительные сведения о предупреждении C4867, а также библиотеках MFC и ATL см. в разделе _ATL_ENABLE_PTM_WARNING.
Пример
В следующем примере возникает ошибка C4867.
// C4867.cpp
// compile with: /c
class A {
public:
void f(int) {}
typedef void (A::*TAmtd)(int);
struct B {
TAmtd p;
};
void g() {
B b = {f}; // C4867
B b2 = {&A::f}; // OK
}
};