Funktion mit verschiedenen return Typen möglich?
-
... oder Du schreibst direkt in der Funktion in die Datei. Wenn der weitere Programmverlauf vom Funktionsergebnis unabhängig ist, brauchst Du gar keinen Rückgabewert ...
-
@tecranovis
Alle bisherigen Antworten hatten zum Ziel, irgendwas zu basteln, damit eine Funktion 2 Werte zurück gibt.
Ich glaube niemand hier hätte dir das als Tipp gegeben, um eine Ausgabe zu formatieren.
Da kannst du doch besser eine Funktion nehmen:toStream(double value, std::ostream& os) { if(value ==1) os << "OK"; else os << value; } ...
-
@Jockelx sagte in Funktion mit verschiedenen return Typen möglich?:
@tecranovis
Alle bisherigen Antworten hatten zum Ziel, irgendwas zu basteln, damit eine Funktion 2 Werte zurück gibt.
Ich glaube niemand hier hätte dir das als Tipp gegeben, um eine Ausgabe zu formatieren.
Da kannst du doch besser eine Funktion nehmen:if(value ==1)
Ich hab gehört, mit solchen Vergleichen sollte man vorsichtig sein, wenn es um Fließkommazahlen geht ...
-
Ich habe gehört, dass man nicht eigenmächtig eigene/neue Logik einbaut, wenn man etwas in eine Funktion auslagert
-
@Jockelx @Belli Ich habe gehört, daß
a
undb
alsint
s übergeben werdenif (a == b) return "Ok";
also:
std::ostream& magic_div(std::ostream &os, int a, int b) { if (a == b) return os << "Ok"; return os << (a / static_cast<float>(b)); )
-
@Swordfish Du hast wohl richtig gehört!
Ich hab einfach nur nach oben gescrollt und den ersten Code (von @It0101 ) übernommen.
Im ersten Post steht aber was von int.Deine Funktion finde ich aber trotzdem nicht gut. Die komplizierte Berechnung (a/b) würde ich in einer eigenen Funktion machen und die stream-Ausgabe in einer Anderen (mit dem berechneten Wert).
-
@Jockelx Dann musst wieder mit einem epsilon rumspielen ...
-
@Swordfish Mmh, ja, ist auch doof. Stimmt schon.
-
@Jockelx sagte in Funktion mit verschiedenen return Typen möglich?:
Ich hab einfach nur nach oben gescrollt und den ersten Code (von @It0101 ) übernommen.
Nein. Der Code des TE enthält keinerlei Datentypen, nur den static_cast auf float. Die Ints sind eine Erfindung vom Aquarium-Insassen
-
Dieser Beitrag wurde gelöscht!
-
@tecranovis sagte in Funktion mit verschiedenen return Typen möglich?:
Looks great an extraordinary for a C++ newbie like me.
But unfortunately my compiler does not support <variant> which seems to be a relatively new extension of the C++ standard.A 'variant' is just a 'union' or 'structure' containing some types and also an id of which type is current. Unions and structs are actually relicts of the C ancestry of C++.
-
@RBS2 Ja, und wenn Du eine blanke
union
zurückgibst hat der aufrufende Code keinen Plan welcher member active ist. Troll dich.
-
@Swordfish sagte in Funktion mit verschiedenen return Typen möglich?:
@RBS2 Ja, und wenn Du eine blanke
union
zurückgibst hat der aufrufende Code keinen Plan welcher member active ist. Troll dich.Deshalb sollte diese Union z.B. Teil einer Struct sein, die anzeigt was gerade gilt. Stell dich doch nicht absichtlich dumm.
-
@RBS2 sagte in Funktion mit verschiedenen return Typen möglich?:
Deshalb sollte diese Union z.B. Teil einer Struct sein, die anzeigt was gerade gilt.
Was ja üüüüüüberhaupt nicht mein Lösungsvorschlag abseits
std::variant<>
war. Tell me more .... Du ziehst fast jeden Thread wo Du Dich "einbringst" absichtlich in die Scheiße.
-
Dieser Beitrag wurde gelöscht!
-
Dieser Beitrag wurde gelöscht!
-
Dieser Beitrag wurde gelöscht!
-
Dieser Beitrag wurde gelöscht!