Ich habe Tonnen von operator<<(std::ostream &, const T &)
Funktionen geschrieben - sie sind unglaublich nützlich.Verwendet jemand tatsächlich Stream-Extraktionsoperatoren?
Ich habe noch nie eine operator>>(std::istream &, T &)
Funktion in echtem Code geschrieben oder sogar die Extraktionsoperatoren für eingebaute Typen verwendet (OK, vielleicht für std::string
). Sind diese nur für kurze Beispielprogramme und Lehrbücher geeignet? Ist operator>>
eine fehlgeschlagene Funktion von C++?
Fragen wurden über safely overloading stream operators gestellt. Was ich mich wundere ist, wenn jemand das in der Praxis tut.
Auch für etwas einfaches wie reading input from a file in C++ kann ich nicht vorschlagen, operator>>
zu verwenden. Es ist zu schwierig, Code zu schreiben, der robust in der Erkennung und Handhabung von Eingabefehlern ist (oder ich weiß nicht wie).
Wenn Sie nicht zustimmen, zeigen Sie bitte ein gutes Beispiel für die Verwendung operator>>
- vielleicht durch Beantworten der letzten Frage, die ich verknüpft habe.
Zusammenfassung: Danke für die Antworten jeder, viele gute Meinungen. Manuel's Antwort ließ mich meinen Widerwillen,
op>>
zu verwenden, überdenken, also akzeptierte ich diesen.
Sie müssen 'op >>' definieren, wenn 'lexical_cast' unterstützt werden soll. (http://www.boost.org/doc/libs/1_42_0/libs/conversion/lexical_cast.htm). – kennytm