私が持っているとしましょう:
// This is all valid in C++11.
struct Foo {
int i = 42;
int& j = i;
};
// Let's take a pointer to the member "j".
auto b = &Foo::j; // Compiler is not happy here
// Note that if I tried to get a pointer to member "i", it would work, as expected.
Foo f;
std::cout << f.*b; // Try using the pointer to member
コンパイラは、参照であるためメンバーのアドレスを取得できないと不平を言います。正確には:
セマンティックの問題: 参照型 'int &' のメンバー 'j' へのポインターへのメンバーを形成できません
これを行うのは無意味に思えることはわかっていますが、なぜそれができないのか疑問に思っています。
なぜこれが不可能なのですか?