Les noms ont une portée (une propriété à la compilation),
Oui, mais je ne dirais pas qu'il s'agit d'une idée de propriété. Mais en gros, oui.
tandis que les objets ont une durée de vie (une propriété d'exécution). C'est bien cela ?
Il existe trois types de variables. Chaque type a des propriétés différentes en ce qui concerne les durées de vie.
- Durée de stockage automatique :
- Durée du stockage statique
- Durée de stockage dynamique
Note : les objets de durée de stockage automatique ont une durée de vie liée à la portée de la variable.
Je vois souvent des gens parler d'objets temporaires qui "sortent du champ d'application".
A moins d'être lié à une variable, un temporaire est détruit à la fin d'une expression. S'il est lié à une variable (une référence constante), il a la même durée de vie que la variable. Parfois, il est plus facile de se référer à la portée, mais techniquement vous avez raison.
Mais comme un objet temporaire n'a pas de nom, je pense qu'il est absurde de parler de "portée" dans ce contexte.
Techniquement, oui. Mais je pense qu'il est plus facile d'en parler. Pour moi (bien que ce ne soit pas techniquement correct), la portée d'un temporaire (non lié) est l'expression. C'est plus facile à dire que la durée de vie de la variable temporaire.
La durée de vie d'un objet temporaire est très clairement définie et n'a rien à voir avec la portée. Êtes-vous d'accord ?
Oui, mais il semble plus naturel de parler de champ d'application (même si ce n'est pas techniquement correct). La plupart des gens comprennent ce que vous essayez d'impliquer. Mais lorsque l'on aborde des sujets très techniques, il convient d'utiliser la terminologie correcte et, dans ce contexte, le terme "champ d'application" n'est pas correct.