in the C++ reference: C++ Standard - ANSI ISO IEC 14882 2003.pdf: at the 186th page, there is an example:
typedef void fv(void); typedef void fvc(void) const; struct S { fv memfunc1; // equivalent to: void memfunc1(void); void memfunc2(); fvc memfunc3; // equivalent to: void memfunc3(void) const; }; fv S::* pmfv1 = &S::memfunc1; fv S::* pmfv2 = &S::memfunc2; fvc S::* pmfv3 = &S::memfunc3; Compiling this code under MinGW gcc 3.4.5 causes the following errors: bug.cpp:2: error: invalid type qualifier for non-member function type bug.cpp:2: error: `const' and `volatile' function specifiers on `fvc' invalid in type declaration bug.cpp:10:31: warning: no newline at end of file While defining a function type, its not possible to make it constant, nor when making a member function type out of a function type. the standard (typedef void fvc(void) const) is not supported by gcc 3.4.5 ... -- Summary: function type to constant member function type not possible Product: gcc Version: 3.4.5 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: WisdomOfDarkness at gmail dot com GCC build triplet: Windows GCC host triplet: Windows, MinGW GCC target triplet: Windows http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44234