PRODUCT : Borland C++ NUMBER : 1018 VERSION : 3.1 OS : WIN DATE : October 19, 1993 PAGE : 1/2 TITLE : Address of Member function syntax using v3.1 The following code highlights a change that was made to the Borland C++ v 3.1 compiler to allow for syntax used by the Microsoft Foundation Classes (MFC). The issue revolves around the proper syntax used when taking the address of a member function. The four commented lines in the source below demonstrate the syntax in question. The fourth example, &A::f, is the syntax that should be used for ANSI C++ compliance. Using the option OPTIONS|COMPILER|SOURCE|ANSI, or -A at the command line, will generate the appropriate error when the &f or A::f syntax is used. The ANSI specification for C++ is currently still in draft form so this issue is subject to change. Please accept our apologies for any inconvenience that this compiler modification has caused. class A { public: void f() {} }; typedef void (A::*AFP)(); class B : public A { public: static AFP afp1; static AFP afp2; static AFP afp3; }; AFP afp4 = A::f; // Fails when using ANSI C++ AFP B::afp1 = &f; // Fails when using ANSI C++ AFP B::afp2 = A::f; // Fails when using ANSI C++ AFP B::afp3 = &A::f; // Correct ANSI C++ syntax int main() { return 0; PRODUCT : Borland C++ NUMBER : 1018 VERSION : 3.1 OS : WIN DATE : October 19, 1993 PAGE : 2/2 TITLE : Address of Member function syntax using v3.1. } DISCLAIMER: You have the right to use this technical information subject to the terms of the No-Nonsense License Statement that you received with the Borland product to which this information pertains.