面白いものを見つけました。エラーメッセージはそれをすべて言います。非静的メンバー関数のアドレスを取得するときに括弧を許可しない理由は何ですか? gcc 4.3.4でコンパイルしました。
#include <iostream>
class myfoo{
public:
int foo(int number){
return (number*10);
}
};
int main (int argc, char * const argv[]) {
int (myfoo::*fPtr)(int) = NULL;
fPtr = &(myfoo::foo); // main.cpp:14
return 0;
}
エラー: main.cpp:14: エラー: ISO C++ では、メンバー関数へのポインターを形成するために、非修飾または括弧付きの非静的メンバー関数のアドレスを取得することを禁止しています。「&myfoo::foo」と言います