Указатель на член, являющийся ссылкой, недопустим?

Допустим, у меня есть:

// 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

Компилятор жалуется, что я не могу принять адрес члена, потому что это ссылка. Чтобы быть точным:

Семантическая проблема: невозможно сформировать указатель на член для члена 'j' ссылочного типа 'int &'

Я знаю, что это кажется бессмысленным, но мне только интересно, почему это невозможно. .

Почему это невозможно?

19
задан Anthony 1 December 2011 в 07:21
поделиться