Au moment de la capture d' g
par référence, il a été déclaré, de sorte que le nom est disponible pour une utilisation:
3.3.2/1 Le point de la déclaration d'un nom est immédiatement après sa complète de demande de déclaration (article 8) et avant son initialiseur
Vous êtes autorisé à utiliser des objets de façon limitée avant qu'ils sont initialisées - en gros, tout ce qui ne dépend pas de la valeur est OK:
3.8/6 avant la durée de vie d'un objet a commencé, mais après la de stockage dont l'objet s'occuper
a été attribué [...] toute glvalue qui fait référence à l'objet d'origine peuvent être utilisés, mais uniquement dans certaines
façons. [...] en utilisant les propriétés de la glvalue qui ne dépendent pas de sa valeur est bien définie.
Donc, selon ma compréhension, ce que vous faites est bien définie.
(Bien que, étant ultrapedantic, je ne pense pas qu'il est spécifié lorsque le stockage automatique de l'objet est alloué, et 8.3.2/5 dit que "une référence doit être initialisée à se référer à un objet valide", sans définir "valide", il n'est donc portée à dire, que c'est pas bien définie).