La norme parle des « past-the-end values ». Comment doit-on rendre cette
expression en français ? La norme C parle des pointeurs « one past the
last object » ; on pourrait poser la même question ici.
On remarque bien qu'il s'agit d'une expression technique très précise,
dont la signification ne se résume pas entièrement dans la signification
habituelle des mots qu'elle comporte. Donc, si « valeur au-delà de la
fin » pourrait être un candidat, il est loin d'être certain que c'est la
meilleur solution. D'autant plus qu'en C++, de tels itérateurs peuvent
exister pour un tableau vide, ou il n'y a pas de « last object ».
--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
La norme parle des « past-the-end values ». Comment doit-on rendre cette
expression en français ? La norme C parle des pointeurs « one past the
last object » ; on pourrait poser la même question ici.
On remarque bien qu'il s'agit d'une expression technique très précise,
dont la signification ne se résume pas entièrement dans la signification
habituelle des mots qu'elle comporte. Donc, si « valeur au-delà de la
fin » pourrait être un candidat, il est loin d'être certain que c'est la
meilleur solution. D'autant plus qu'en C++, de tels itérateurs peuvent
exister pour un tableau vide, ou il n'y a pas de « last object ».
--
James Kanze GABI Software mailto:kanze@gabi-soft.fr
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
La norme parle des « past-the-end values ». Comment doit-on rendre cette
expression en français ? La norme C parle des pointeurs « one past the
last object » ; on pourrait poser la même question ici.
On remarque bien qu'il s'agit d'une expression technique très précise,
dont la signification ne se résume pas entièrement dans la signification
habituelle des mots qu'elle comporte. Donc, si « valeur au-delà de la
fin » pourrait être un candidat, il est loin d'être certain que c'est la
meilleur solution. D'autant plus qu'en C++, de tels itérateurs peuvent
exister pour un tableau vide, ou il n'y a pas de « last object ».
--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
La norme parle des « past-the-end values ». Comment doit-on rendre
cette expression en français ? La norme C parle des pointeurs « one
past the last object » ; on pourrait poser la même question ici.
On remarque bien qu'il s'agit d'une expression technique très
précise, dont la signification ne se résume pas entièrement dans la
signification habituelle des mots qu'elle comporte. Donc, si «
valeur au-delà de la fin » pourrait être un candidat, il est loin
d'être certain que c'est la meilleur solution. D'autant plus qu'en
C++, de tels itérateurs peuvent exister pour un tableau vide, ou il
n'y a pas de « last object ».
Je crois (à confirmer) qu'en français on utilise la notion de
"sentinelle".
Une sentinelle correspond à une case d'un tableau ou à une cellule
d'une liste chaînée situées juste après le dernier élément. Elle
permet d'améliorer certains algo.
Quelqu'un sait-il si la classe vector utilise ce système ?
La norme parle des « past-the-end values ». Comment doit-on rendre
cette expression en français ? La norme C parle des pointeurs « one
past the last object » ; on pourrait poser la même question ici.
On remarque bien qu'il s'agit d'une expression technique très
précise, dont la signification ne se résume pas entièrement dans la
signification habituelle des mots qu'elle comporte. Donc, si «
valeur au-delà de la fin » pourrait être un candidat, il est loin
d'être certain que c'est la meilleur solution. D'autant plus qu'en
C++, de tels itérateurs peuvent exister pour un tableau vide, ou il
n'y a pas de « last object ».
Je crois (à confirmer) qu'en français on utilise la notion de
"sentinelle".
Une sentinelle correspond à une case d'un tableau ou à une cellule
d'une liste chaînée situées juste après le dernier élément. Elle
permet d'améliorer certains algo.
Quelqu'un sait-il si la classe vector utilise ce système ?
La norme parle des « past-the-end values ». Comment doit-on rendre
cette expression en français ? La norme C parle des pointeurs « one
past the last object » ; on pourrait poser la même question ici.
On remarque bien qu'il s'agit d'une expression technique très
précise, dont la signification ne se résume pas entièrement dans la
signification habituelle des mots qu'elle comporte. Donc, si «
valeur au-delà de la fin » pourrait être un candidat, il est loin
d'être certain que c'est la meilleur solution. D'autant plus qu'en
C++, de tels itérateurs peuvent exister pour un tableau vide, ou il
n'y a pas de « last object ».
Je crois (à confirmer) qu'en français on utilise la notion de
"sentinelle".
Une sentinelle correspond à une case d'un tableau ou à une cellule
d'une liste chaînée situées juste après le dernier élément. Elle
permet d'améliorer certains algo.
Quelqu'un sait-il si la classe vector utilise ce système ?
Franck Branjonneau writes:
[...]
| Note que a.begin() == a.end() est une propriété de a.end() quand
tout comme la « définition » que j'ai donnée. Tu connais beaucoup de
définitions qui ne sont pas basées ou n'énoncent pas des propriétés ?
:-)
| a est vide. Ce ne sera une définition de a.end() que quand a.begin()
| aura été défini ;-)
Voir mon message en réponse à James :-)
Franck Branjonneau <fasbjx@free.fr> writes:
[...]
| Note que a.begin() == a.end() est une propriété de a.end() quand
tout comme la « définition » que j'ai donnée. Tu connais beaucoup de
définitions qui ne sont pas basées ou n'énoncent pas des propriétés ?
:-)
| a est vide. Ce ne sera une définition de a.end() que quand a.begin()
| aura été défini ;-)
Voir mon message en réponse à James :-)
Franck Branjonneau writes:
[...]
| Note que a.begin() == a.end() est une propriété de a.end() quand
tout comme la « définition » que j'ai donnée. Tu connais beaucoup de
définitions qui ne sont pas basées ou n'énoncent pas des propriétés ?
:-)
| a est vide. Ce ne sera une définition de a.end() que quand a.begin()
| aura été défini ;-)
Voir mon message en réponse à James :-)
writes:
| La norme parle des « past-the-end values ». Comment doit-on rendre
| cette expression en français ? La norme C parle des pointeurs « one
| past the last object » ; on pourrait poser la même question ici.
À mon grand regret (et aussi celui de BS), nombre de formulations
actuellemment présentes dans la norme sont des long listes de cas
particuliers. Dans la composante IPR de la charpente de représentation
de programmes C++ en C++ (The Pivot) que nous développons ici,
nous utilisons naturellement la notion de suite au sens abstrait du
terme (et certainement proche de l'ingénieur en chef, mais aussi
matheux, Alex Stepanov). Je ne sais pas si je proposerais une
formulation équivalente pour adoption dans la norme, mais voici ce que
j'ai mis dans la documentation de IPR (traduction) :
1.1.1 Suite
Une /suite/ est une application I --> T où le domaine I est un
sous-ensemble des entiers relatifs ZZ. Les suites considérées dans
IPR ont des domaines bornés. En conséquence, lorsque nous parlons
de suite, il est implicitement entendu que son domaine est borné.
Le cardinal du domaine d'une suite est appelée sa /taille/ (notée
/size/). Une suite Sigma : I --> T de taille /n/ admet la
décomposition canonique nu : I --> [0, n[ suivie de [0, n[ --> T,
où l'application nu (une indexation du domaine I) est une
application strictement croissante.
1.1.2 Itérateur
Un itérateur est un couple de suite et d'entier appelé /position/.
Un itérateur (s, i) est /valide pour indirection/ si sa position
est dans les bornes de l'indexation du domaine de s, i.e. si i est
positif et strictement plus petit que la taille de s. Les
itérateurs particuliers (s, 0) et (s, size(s)) sont respectivement
appelés les itérateurs /first/ et /one-past-the-end/ de s.
Exprès, je n'ai pas traduit /first/ et /one-past-the-end/. Mais, cela
te donne au moins une idée de ce que /one-past-the-end/ représente de
manière abstraite. À noter que cette formulation de one-past-the-end
s'applique même si la suite est de taille nulle.
Je prétends que pour tous les containers (au moins ceux de la
bibliothèque standard), cette définition s'applique et, de plus, est
générale.
Je crois que seuls les std::istream_iterator<>
std::ostream_iterator<> résistent à cette définition, mais alors il
est aussi vrai qu'ils ne sont attachés à aucune suite au sens propre
du terme (comme défini au 1.1.1).
| On remarque bien qu'il s'agit d'une expression technique très
| précise, dont la signification ne se résume pas entièrement dans la
| signification habituelle des mots qu'elle comporte. Donc, si «
| valeur au-delà de la fin » pourrait être un candidat, il est loin
| d'être certain que c'est la meilleur solution. D'autant plus qu'en
| C++, de tels itérateurs peuvent exister pour un tableau vide, ou il
| n'y a pas de « last object ».
Est-ce que l'explication ci-dessus te satisfait ?
kanze@gabi-soft.fr writes:
| La norme parle des « past-the-end values ». Comment doit-on rendre
| cette expression en français ? La norme C parle des pointeurs « one
| past the last object » ; on pourrait poser la même question ici.
À mon grand regret (et aussi celui de BS), nombre de formulations
actuellemment présentes dans la norme sont des long listes de cas
particuliers. Dans la composante IPR de la charpente de représentation
de programmes C++ en C++ (The Pivot) que nous développons ici,
nous utilisons naturellement la notion de suite au sens abstrait du
terme (et certainement proche de l'ingénieur en chef, mais aussi
matheux, Alex Stepanov). Je ne sais pas si je proposerais une
formulation équivalente pour adoption dans la norme, mais voici ce que
j'ai mis dans la documentation de IPR (traduction) :
1.1.1 Suite
Une /suite/ est une application I --> T où le domaine I est un
sous-ensemble des entiers relatifs ZZ. Les suites considérées dans
IPR ont des domaines bornés. En conséquence, lorsque nous parlons
de suite, il est implicitement entendu que son domaine est borné.
Le cardinal du domaine d'une suite est appelée sa /taille/ (notée
/size/). Une suite Sigma : I --> T de taille /n/ admet la
décomposition canonique nu : I --> [0, n[ suivie de [0, n[ --> T,
où l'application nu (une indexation du domaine I) est une
application strictement croissante.
1.1.2 Itérateur
Un itérateur est un couple de suite et d'entier appelé /position/.
Un itérateur (s, i) est /valide pour indirection/ si sa position
est dans les bornes de l'indexation du domaine de s, i.e. si i est
positif et strictement plus petit que la taille de s. Les
itérateurs particuliers (s, 0) et (s, size(s)) sont respectivement
appelés les itérateurs /first/ et /one-past-the-end/ de s.
Exprès, je n'ai pas traduit /first/ et /one-past-the-end/. Mais, cela
te donne au moins une idée de ce que /one-past-the-end/ représente de
manière abstraite. À noter que cette formulation de one-past-the-end
s'applique même si la suite est de taille nulle.
Je prétends que pour tous les containers (au moins ceux de la
bibliothèque standard), cette définition s'applique et, de plus, est
générale.
Je crois que seuls les std::istream_iterator<>
std::ostream_iterator<> résistent à cette définition, mais alors il
est aussi vrai qu'ils ne sont attachés à aucune suite au sens propre
du terme (comme défini au 1.1.1).
| On remarque bien qu'il s'agit d'une expression technique très
| précise, dont la signification ne se résume pas entièrement dans la
| signification habituelle des mots qu'elle comporte. Donc, si «
| valeur au-delà de la fin » pourrait être un candidat, il est loin
| d'être certain que c'est la meilleur solution. D'autant plus qu'en
| C++, de tels itérateurs peuvent exister pour un tableau vide, ou il
| n'y a pas de « last object ».
Est-ce que l'explication ci-dessus te satisfait ?
writes:
| La norme parle des « past-the-end values ». Comment doit-on rendre
| cette expression en français ? La norme C parle des pointeurs « one
| past the last object » ; on pourrait poser la même question ici.
À mon grand regret (et aussi celui de BS), nombre de formulations
actuellemment présentes dans la norme sont des long listes de cas
particuliers. Dans la composante IPR de la charpente de représentation
de programmes C++ en C++ (The Pivot) que nous développons ici,
nous utilisons naturellement la notion de suite au sens abstrait du
terme (et certainement proche de l'ingénieur en chef, mais aussi
matheux, Alex Stepanov). Je ne sais pas si je proposerais une
formulation équivalente pour adoption dans la norme, mais voici ce que
j'ai mis dans la documentation de IPR (traduction) :
1.1.1 Suite
Une /suite/ est une application I --> T où le domaine I est un
sous-ensemble des entiers relatifs ZZ. Les suites considérées dans
IPR ont des domaines bornés. En conséquence, lorsque nous parlons
de suite, il est implicitement entendu que son domaine est borné.
Le cardinal du domaine d'une suite est appelée sa /taille/ (notée
/size/). Une suite Sigma : I --> T de taille /n/ admet la
décomposition canonique nu : I --> [0, n[ suivie de [0, n[ --> T,
où l'application nu (une indexation du domaine I) est une
application strictement croissante.
1.1.2 Itérateur
Un itérateur est un couple de suite et d'entier appelé /position/.
Un itérateur (s, i) est /valide pour indirection/ si sa position
est dans les bornes de l'indexation du domaine de s, i.e. si i est
positif et strictement plus petit que la taille de s. Les
itérateurs particuliers (s, 0) et (s, size(s)) sont respectivement
appelés les itérateurs /first/ et /one-past-the-end/ de s.
Exprès, je n'ai pas traduit /first/ et /one-past-the-end/. Mais, cela
te donne au moins une idée de ce que /one-past-the-end/ représente de
manière abstraite. À noter que cette formulation de one-past-the-end
s'applique même si la suite est de taille nulle.
Je prétends que pour tous les containers (au moins ceux de la
bibliothèque standard), cette définition s'applique et, de plus, est
générale.
Je crois que seuls les std::istream_iterator<>
std::ostream_iterator<> résistent à cette définition, mais alors il
est aussi vrai qu'ils ne sont attachés à aucune suite au sens propre
du terme (comme défini au 1.1.1).
| On remarque bien qu'il s'agit d'une expression technique très
| précise, dont la signification ne se résume pas entièrement dans la
| signification habituelle des mots qu'elle comporte. Donc, si «
| valeur au-delà de la fin » pourrait être un candidat, il est loin
| d'être certain que c'est la meilleur solution. D'autant plus qu'en
| C++, de tels itérateurs peuvent exister pour un tableau vide, ou il
| n'y a pas de « last object ».
Est-ce que l'explication ci-dessus te satisfait ?