Nun, ich denke, deine Fragen kannst du dir selbst beantworten.
Natürlich führt es zu keiner Fehlfunktion.
Eure(Deine) ursprüngliche Aussage war, dass bei C++ Iteratoren wesentliche Implementationsdetails nach außen gelangen und C#s "
IEnumerable<T>" einige Vorteile besitzen soll. Ein überzeugendes Argument dafür kam da meiner Ansicht nach bisher immer noch nicht. Dots Feststellung war, dass sich die C++ und C#-Variante im Kern hauptsächlich in der Grundsatzfrage statisch vs dynamisch unterscheidet und C++s Variante universaler ausgelegt ist. Ich verwende sehr gern statischen Polymorphismus weil ich gerne den Overhead niedrig halten will und einen Vorteil darin sehe, wenn der Codepfad statisch feststeht und damit offensichtlicher ist. Eigentlich möchte ich aussagen, dass C++s Iteratoren anders als in deiner Aussage nicht schlechter als C# Iteratoren sind. Im Gegenteil: Sie bieten das Gleiche und mehr. Der einzige
wirkliche Unterschied ist hauptsächlich eine Sache der rein persönlichen Präferenzen und des Anwendungsfalles.
Ich bin sicher nicht ein großer Experte, wie man als aufmerksamer Forenleser schon mitbekommen haben sollte.
Leider habe ich schon genug Profis mit weniger Erfahrung gesehen. (Nicht unbedingt direkt auf dich bezogen.
)