Почему это вызывает C2102: '&' требует l-значения

Мне было интересно, почему следующий код (уже закомментированный) вызовет
C2102: '&' требует l-значения

Есть ли лучший способ избегайте использования переменной tmp ?

class a {
private:
    int *dummy;
public:
    int* get_dummy() const {
        return dummy;
    }
};

int main()
{
    a aa;

    // error C2102: '&' requires l-value
    //int** me = &(aa.get_dummy());

    // OK!
    int *tmp = aa.get_dummy();
    int** me = &(tmp);
}
7
задан Cheok Yan Cheng 9 September 2010 в 07:05
поделиться