Comment une non-const de référence ne peut pas se lier à un objet temporaire?

Pourquoi n'est-il pas permis d'obtenir des non-const référence à un objet temporaire,
la fonction getx() retourne? Clairement, c'est interdit par la Norme C++
mais je suis intéressé dans le but d'une telle restriction, pas une référence à la norme.

struct X
{
    X& ref() { return *this; }
};

X getx() { return X();}

void g(X & x) {}    

int f()
{
    const X& x = getx(); //OK
    X& x = getx(); //error
    X& x = getx().ref(); //OK
    g(getx()); //error
    g(getx().ref()); //OK
    return 0;
}
  1. Il est clair que la durée de vie de l'objet ne peut pas être la cause, parce que
    la constante référence à un objet est qui ne sont pas interdites par la Norme C++.
  2. Il est clair que l'objet temporaire n'est pas constante dans l'exemple ci-dessus, parce que les appels à la non-fonctions constantes sont autorisés. Par exemple, ref() pourrait modifier l'objet temporaire.
  3. En outre, ref() permet de tromper le compilateur et obtenir un lien vers cet objet temporaire et qui permet de résoudre notre problème.

En outre:

Ils disent "l'affectation d'un objet temporaire pour la const référence prolonge la durée de vie de cet objet" et "Rien n'est dit au sujet de la non-const références bien".
Mon question supplémentaire. Ne affectation suivante prolonger la durée de vie de l'objet temporaire?

X& x = getx().ref(); //OK
Je suis en désaccord avec "la durée de vie de l'objet ne peut pas être la cause de la partie", juste parce qu'elle est mentionnée dans la norme, que l'attribution d'un objet temporaire pour la const de référence s'étend la durée de vie de cet objet à la durée de vie de la const de référence. Rien n'est dit au sujet de la non-const références...
Eh bien, quelle est la cause de ce "Rien n'est dit au sujet de la non-const références si...". C'est une partie de ma question. Est-il un sens à tout cela? Peut-être les auteurs de la Norme juste oublié non-const références et bientôt, nous allons voir la prochaine Question centrale?
GotW #88: Un Candidat Pour le "const". herbsutter.spaces.live.com/blog/cns!2D4327CC297151BB!378.entrée
VC lie rvalues à la non-const références. Ils appellent cela une fonction, mais c'est vraiment un bug. (Notez que ce n'est pas un bug parce que c'est fondamentalement illogique, mais parce qu'il a été exclu explicitement à prévenir les erreurs stupides.)
Herb Sutter est GotW #88 : Candidat à la "Plus Importante const" a été déplacé.

OriginalL'auteur Alexey Malistov | 2009-10-14