Operator Problem
-
Bus operator+(Bus const& einBus, Bus const& nocheinBus) { Bus temp(einBus); temp += nocheinBus; return temp; }
könnte man das nicht besser so schreiben?
Bus operator+(Bus const& einBus, Bus const& nocheinBus) { return einBus+nocheinBus; }
wär das nich etwas schneller?
-
Otze: Nein, das wird eine sehr sehr langwierige Endlosrekursion
Sidewinder: Hm, du meinst so?
Bus operator(Bus const& einBus, Bus const& nocheinBus) { return Bus(einBus.sitze + nocheinBus.sitze); }
Oder noch anders?
Um das temporäre Objekt würd ich mir keine Gedanken machen, wenn ich einen halbwegs modernen Compiler benutze. Das wird per NRVO wegoptimiert.
-
Jop genau so, hab das bisher immer so gemacht. Also hat das keinen Sinn und heißt im Endeffekt nur Aufwand und Abhängigkeit?
MfG SideWinder
-
Für deinen op+ könnte man ja glatt den <utility> um ein op+-Template erweitern.
MfG SideWinder
-
Bashar schrieb:
Otze: Nein, das wird eine sehr sehr langwierige Endlosrekursion
Sidewinder: Hm, du meinst so?
Bus operator(Bus const& einBus, Bus const& nocheinBus) { return Bus(einBus.sitze + nocheinBus.sitze); }
Oder noch anders?
Um das temporäre Objekt würd ich mir keine Gedanken machen, wenn ich einen halbwegs modernen Compiler benutze. Das wird per NRVO wegoptimiert.
Was ist NRVO?
-
unwissender4 schrieb:
Was ist NRVO?
Ich glaube das heißt: "Named Return Value Optimization"
Bin mir aber nicht sicher
-
Jep, zur Not könnte man sich das auch ergoogeln :p
-
Bashar schrieb:
Jep, zur Not könnte man sich das auch ergoogeln :p
Optimist
mfg
v R
-
Und was ist jetzt mit meinem op, lieber friend oder so?
MfG SideWinder
-
Dein operator braucht einen passenden Konstruktor, aber ansonsten ist dagegen imho nichts einzuwenden.