Jungs wäre es schwer zu schreiben Coutn, die im Grunde Newline-Symbol am Ende der Eingabe platzieren würde. Während ich mit der Konsole arbeite (das ist alles, was ich im Moment tun kann), finde ich es sehr mühsam, '\ n' jedes Mal zu schreiben, wenn die Zeile eine neue Zeile sein soll.
Oder ist es bereits implementiert?
Um die Mehrfacheinspritzungen in einer einzelnen Zeile zu umgehen, könnten Sie ein temporäres Objekt verwenden. Dieses temporäre Objekt würde das '\ n' in seinem Destruktor hinzufügen.
%Vor% Am Ende frage ich mich, ob diese coutn
tatsächlich besser ist?
Nun, das erste offensichtliche Ding wäre, eine Art Wrapper um ihn herum zu implementieren:
%Vor%Verwendung ist wie folgt:
%Vor%Einfach, Peasy.
Die Art und Weise, wie Streams arbeiten, besteht darin, dass sie eine Sache hinzufügen und sich dann selbst zurückgeben.
also sind Sie sicher, dass Sie tun möchten, was Sie fragen?
Zum Beispiel:
s & lt; & lt; "a" & lt; & lt; "b";
Würde setzen:
ein
b
Sicherlich können Sie einen Weg mit einer Art Wrapper finden, aber der zusätzliche Overhead und die verringerte Lesbarkeit des Codes sind meiner Meinung nach nicht wert. Die meisten Programmierer sind mit dem Standard C ++ vertraut. Die meisten Programmierer sind nicht vertraut mit Ihrem Coutn und wie es funktioniert.
Komm ein Volk. Sie müssen zugeben, dass C ++ Zeilenumbrüche zu ausführlich sind. Schau dir C #, D, Java, Python, Ruby an, sollte ich weitermachen? Ich denke nicht, dass Sie ein coutn
implementieren sollten. Ich denke, Sie wären besser dran, Beispiel D mit write
, writeln
, writef
und writefln
variadic Vorlagenfunktionen.
Wie auch immer, das geht ohne Makros und ohne das explizite Erstellen von Provisorien.
%Vor% Die komplette Lösung muss mehr Überladungen für operator<<
hinzufügen, um Stream-Manipulatoren ( std::hex
etc) zu behandeln. Die Funktionen, die newliners
zurückgeben, müssen immer inline sein, um RVO zu erlauben.
Tags und Links c++