les "intent" déclarent les intentions d’utilisation d’une variable et laissent le compilateur libre de choisir le passage par référence ou par valeur
Au final, c'est pareil en Ada et c'est ce qui est dit dans le wikibook
The parameter passing method depends on the type of the parameter. A rule of thumb is that parameters fitting into a register are passed by copy, others are passed by reference. For certain types, there are special rules, for others the parameter passing mode is left to the compiler (which you can assume to do what is most sensible). Tagged types are always passed by reference.
Explicitly aliased parameters and access parameters specify pass by reference.
C'est au final au compilateur de choisir sauf si le développeur veut forcer une manière de passer les arguments et dans ce cas, on peut passer par des pointeurs.
D'ailleurs pour faciliter le masquage de la sémantique des pointeurs, Ada 2012 a introduit l'aspect Implicit_Dereference qui permet de ne pas avoir à utiliser un .all.
[^] # Re: Godbolt
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Le quiz c++ de l'été. Évalué à 3.
Au final, c'est pareil en Ada et c'est ce qui est dit dans le wikibook
C'est au final au compilateur de choisir sauf si le développeur veut forcer une manière de passer les arguments et dans ce cas, on peut passer par des pointeurs.
D'ailleurs pour faciliter le masquage de la sémantique des pointeurs, Ada 2012 a introduit l'aspect Implicit_Dereference qui permet de ne pas avoir à utiliser un .all.
Ainsi, une variable de type Accessor construite sur un pointeur d'Element donne directement le membre Data du type en question.