標準(2003)バージョンを引用しています。"C + +での" reference-to-member "タイプはありません。std :: bindとboost :: bindは同じボートにあります。
メンバーへのポインタは、クラス(9.4)、参照型を持つメンバーの静的メンバを指していなければならない、または 「CV:非常8.3.3終了)と思う同じ、太字の強調は私ですボイド "[注:5.3と5.5も参照してください。 "memberへのポインタ"型は "ポインタ"型とは異なります。つまり、メンバへのポインタはメンバ宣言子の構文へのポインタによってのみ宣言され、 ポインタ宣言子の構文では決して宣言されません。 C + +には「メンバへの参照」型はありません。 ]
しかし、私は、例えば
boost::bind(&SomeClass::SomeMemberFunction, this, _1)
など
std::bind(&SomeClass::SomeMemberFunction, this, std::placeholders::_1)
など&SomeClass::SomeMemberFunction
「メンバ関数への参照であるように見えるのが関与する、魔法のように作業の多くを見ます。
は、標準では、単に例えば
int (SomeClass::&RefOnSomeMemberFunction) (int) = SomeClass::SomeMemberFunction
がその言語で有効な表明ではありません、以上であることを言っていますか?
'&'は演算子のアドレスです。 – krzaq
だから、標準が言っていることは、単に 'int(SomeClass ::&RefOnSomeMemberFunction)(Int)= SomeClass :: SomeMemberFunction'は言語の有効なアサーションではないということです。 –
私が知る限り、はい。 – krzaq