_ATL_ENABLE_PTM_WARNING
Defina este macro para forzar el uso de la sintaxis de norma- bajo de ANSI C++ para el puntero a las funciones miembro. Utilizando esta macro producirá un error del compilador C4867 que se generará cuando la sintaxis no estándar se utiliza para inicializar un puntero a una función miembro.
#define _ATL_ENABLE_PTM_WARNING
Comentarios
Las bibliotecas de ATL y MFC se han cambiado para coincidir con la conformidad estándar mejorado de C++ del compilador de Visual C++. Según el estándar ANSI C++, la sintaxis de un puntero a una función miembro de clase debe ser &CMyClass::MyFunc.
Cuando _ATL_ENABLE_PTM_WARNING no está definido (el caso predeterminado), y MFC deshabilita el error C4867 en mapas macros (notablemente mapas de mensajes) para que el código creado en versiones anteriores puede continuar compilando como antes. Si define _ATL_ENABLE_PTM_WARNING, el código debe ser compatible del estándar de C++.
Sin embargo, está desusado el formulario no estándar, por lo que es necesario mover la existencia codificada C++ a estándar sintaxis compatible. Por ejemplo, el siguiente:
BEGIN_MESSAGE_MAP(CMFCListViewDoc, CDocument)
ON_COMMAND(ID_MYCOMMAND, OnMycommand)
END_MESSAGE_MAP()
Debe cambiar:
BEGIN_MESSAGE_MAP(CMFCListViewDoc, CDocument)
ON_COMMAND(ID_MYCOMMAND, &CMFCListViewDoc::OnMycommand)
END_MESSAGE_MAP()
Observe que para las macros de mapa que agregan “y” el carácter, no debe agregarlo de nuevo en el código.
Vea también
Referencia
Advertencia del compilador C4867