J'écris un algorithme qui écrit certaines données dans une plage de sortie donnée (le texte initial de la question comprenait les détails et cela a fait dévier la discussion dans les commentaires dans une mauvaise direction). Je veux que l'API soit aussi proche que possible des autres algorithmes de plage de la bibliothèque standard.
J'ai regardé le dernier projet pour trouver des exemples de std::ranges::output_range
et n'a trouvé que 2 algorithmes :
Et ils reviennent tous les deux std::ranges::safe_iterator_t
. J'ai pensé qu'il était logique de retourner std::ranges::safe_subrange_t
à la place. Même si vous écrivez dans le flux de sortie, vous pouvez toujours retourner une paire itérateur-sentinelle dans ce cas et passer cette gamme en aval.
J'ai trouvé P0970 et ça ressemble à std::ranges::safe_subrange_t
a été ajouté plus tard. Peut-être les algorithmes n'ont-ils tout simplement pas été mis à jour ? Ou y a-t-il une autre raison ?