La raison pratique pour laquelle les surcharges de conteneurs ou de gammes n'ont pas encore été réalisées est liée à la proposition de concepts.
Actuellement, les algorithmes prennent un ensemble de paramètres de modèles et leur imposent des exigences. Si vous passez des types qui ne correspondent pas aux exigences, ils peuvent échouer à compiler ou simplement ne pas fonctionner correctement.
Les surcharges impliquent presque toujours simplement un nombre différent de paramètres.
Si nous devions ajouter des surcharges de conteneurs/plages, nous devrions soit leur donner de nouveaux noms (ick), soit modifier les algorithmes existants pour qu'ils soient adaptés aux surcharges. Une surcharge (itérateur, itérateur, valeur) et une surcharge (gamme, valeur, fonction) ont le même nombre d'arguments, et celle qui est appelée pourrait facilement devenir confuse pour le compilateur (et des résultats inattendus pourraient se produire).
Nous pourrions spécifier les contraintes de surcharge pour tous les algorithmes existants, un par un, puis ajouter les surcharges pour les plages, mais à ce stade, le code et les exigences seraient affreux. Une fois que les concepts auront été ajoutés au langage, nous aurons, nous l'espérons, un ensemble de concepts concis qui décriront ce que les paramètres doivent être, et une fonctionnalité du langage qui rendra l'implémentation facile et propre.
Il se peut que ces algorithmes ne soient pas, en pratique, des surcharges des algorithmes existants, pour des raisons de compatibilité ou autres, mais même cela sera plus facile à mettre au point.
À l'origine, les itérateurs étaient suffisants, et ils découplent les conteneurs des algorithmes. Les intervalles auraient pu être ajoutés à l'époque, mais les mécanismes du langage pour une interprétation propre des intervalles des conteneurs faisaient quelque peu défaut (decltype, par exemple, est utile), et ce n'était pas strictement nécessaire. Depuis, la prise en charge des intervalles a été souhaitée, mais il n'est pas facile de le faire proprement, et il y a (à l'horizon) une extension du langage qui rendra cela beaucoup plus propre et plus facile.