Les adaptateurs de séquences restreignent les interfaces des séquences sur
lesquelles ils s'appuient afin de protéger leurs invariants. Mais pourquoi
swap, qui est a priori une méthode commune aux conteneurs, n'est-elle pas
définie pour ces adaptateurs ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michel Michaud
Dans news:blpob0$kq3$, Patrick
Les adaptateurs de séquences restreignent les interfaces des séquences sur lesquelles ils s'appuient afin de protéger leurs invariants. Mais pourquoi swap, qui est a priori une méthode commune aux conteneurs, n'est-elle pas définie pour ces adaptateurs ?
Peut-être parce qu'il n'est pas nécessaire que la séquence utilisée supporte swap ! Je sais que ça amène la question du pourquoi à un autre niveau... Mais alors on dira que les adaptateurs sont volontairement très simple. Si tu veux faire un swap entre deux stack ou queue, tu peux utiliser std::swap.
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Dans news:blpob0$kq3$1@news-reader2.wanadoo.fr, Patrick
Les adaptateurs de séquences restreignent les interfaces des
séquences sur lesquelles ils s'appuient afin de protéger leurs
invariants. Mais pourquoi swap, qui est a priori une méthode
commune aux conteneurs, n'est-elle pas définie pour ces adaptateurs
?
Peut-être parce qu'il n'est pas nécessaire que la séquence utilisée
supporte swap ! Je sais que ça amène la question du pourquoi à un
autre niveau... Mais alors on dira que les adaptateurs sont
volontairement très simple. Si tu veux faire un swap entre deux
stack ou queue, tu peux utiliser std::swap.
--
Michel Michaud mm@gdzid.com
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Les adaptateurs de séquences restreignent les interfaces des séquences sur lesquelles ils s'appuient afin de protéger leurs invariants. Mais pourquoi swap, qui est a priori une méthode commune aux conteneurs, n'est-elle pas définie pour ces adaptateurs ?
Peut-être parce qu'il n'est pas nécessaire que la séquence utilisée supporte swap ! Je sais que ça amène la question du pourquoi à un autre niveau... Mais alors on dira que les adaptateurs sont volontairement très simple. Si tu veux faire un swap entre deux stack ou queue, tu peux utiliser std::swap.
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Patrick Mézard
Les adaptateurs de séquences restreignent les interfaces des séquences sur lesquelles ils s'appuient afin de protéger leurs invariants. Mais pourquoi swap, qui est a priori une méthode commune aux conteneurs, n'est-elle pas définie pour ces adaptateurs ?
Peut-être parce qu'il n'est pas nécessaire que la séquence utilisée supporte swap ! Je sais que ça amène la question du pourquoi à un autre niveau... Mais alors on dira que les adaptateurs sont volontairement très simple. Si tu veux faire un swap entre deux stack ou queue, tu peux utiliser std::swap.
Oui, mais au niveau des conteneurs de la STL, l'intérêt essentiel de swap est qu'il est "sans exceptions", et que pas mal d'idiomes sont liés à ça (sans parler des questions de performances). En particulier, dès qu'on veux pouvoir écrire du code offrant des garanties "fortes" vis-à-vis des exceptions (tant que je te tiens, si tu as des traductions un peu officielles pour toute la terminologie liée aux "exception safety guarantees"...), swap (en le supposant no-throw()) est extrêmement utile.
Patrick Mézard
Les adaptateurs de séquences restreignent les interfaces des
séquences sur lesquelles ils s'appuient afin de protéger leurs
invariants. Mais pourquoi swap, qui est a priori une méthode
commune aux conteneurs, n'est-elle pas définie pour ces adaptateurs
?
Peut-être parce qu'il n'est pas nécessaire que la séquence utilisée
supporte swap ! Je sais que ça amène la question du pourquoi à un
autre niveau... Mais alors on dira que les adaptateurs sont
volontairement très simple. Si tu veux faire un swap entre deux
stack ou queue, tu peux utiliser std::swap.
Oui, mais au niveau des conteneurs de la STL, l'intérêt essentiel de swap
est qu'il est "sans exceptions", et que pas mal d'idiomes sont liés à ça
(sans parler des questions de performances). En particulier, dès qu'on veux
pouvoir écrire du code offrant des garanties "fortes" vis-à-vis des
exceptions (tant que je te tiens, si tu as des traductions un peu
officielles pour toute la terminologie liée aux "exception safety
guarantees"...), swap (en le supposant no-throw()) est extrêmement utile.
Les adaptateurs de séquences restreignent les interfaces des séquences sur lesquelles ils s'appuient afin de protéger leurs invariants. Mais pourquoi swap, qui est a priori une méthode commune aux conteneurs, n'est-elle pas définie pour ces adaptateurs ?
Peut-être parce qu'il n'est pas nécessaire que la séquence utilisée supporte swap ! Je sais que ça amène la question du pourquoi à un autre niveau... Mais alors on dira que les adaptateurs sont volontairement très simple. Si tu veux faire un swap entre deux stack ou queue, tu peux utiliser std::swap.
Oui, mais au niveau des conteneurs de la STL, l'intérêt essentiel de swap est qu'il est "sans exceptions", et que pas mal d'idiomes sont liés à ça (sans parler des questions de performances). En particulier, dès qu'on veux pouvoir écrire du code offrant des garanties "fortes" vis-à-vis des exceptions (tant que je te tiens, si tu as des traductions un peu officielles pour toute la terminologie liée aux "exception safety guarantees"...), swap (en le supposant no-throw()) est extrêmement utile.