Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.iso-c++ > #1993
| From | ram@zedat.fu-berlin.de (Stefan Ram) |
|---|---|
| Newsgroups | de.comp.lang.iso-c++ |
| Subject | Re: Move semantics und operator overloading |
| Date | 2017-01-08 14:00 +0000 |
| Organization | Stefan Ram |
| Message-ID | <RVO-20170108145851@ram.dialup.fu-berlin.de> (permalink) |
| References | <0b8ad143-ccf2-4867-a02b-ed795dfb392c@googlegroups.com> <move-20170107173529@ram.dialup.fu-berlin.de> <99988bba-1453-4e4a-bf29-a11886a5851e@googlegroups.com> |
Helmut Zeisel <helmut.zeisel@gmail.com> writes: >Ja. Andersrum gefragt: Wieso wird im zweiten Fall (Four) die >Return Value Optimization angewendet, im ersten Fall (Two) >aber nicht? Im Fall A<Two> operator+(A<Two> a, const A<Two>& a2) ist »a« ein Kopierparameter, deswegen kann er am Ende der Funktion entleert werden. Er wird unmittelbar danach ohnehin zerstört werden. Im Fall A<Four> operator+(const A<Four>& a1, const A<Four>& a2) ist »a« ein Referenzparameter. Er referenziert ein Objekt des Aufrufers. Wir wissen nicht, ob der Aufrufer damit einverstanden wäre, wenn wir sein Objekt entleeren würden. Deswegen ist es besser, wenn es bei der Rückgabe kopiert wird.
Back to de.comp.lang.iso-c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Move semantics und operator overloading Helmut Zeisel <zei2011@liwest.at> - 2017-01-06 23:53 -0800
Re: Move semantics und operator overloading ram@zedat.fu-berlin.de (Stefan Ram) - 2017-01-07 15:38 +0000
Re: Move semantics und operator overloading ram@zedat.fu-berlin.de (Stefan Ram) - 2017-01-07 16:36 +0000
Re: Move semantics und operator overloading Helmut Zeisel <helmut.zeisel@gmail.com> - 2017-01-07 12:10 -0800
Re: Move semantics und operator overloading ram@zedat.fu-berlin.de (Stefan Ram) - 2017-01-08 14:00 +0000
Re: Move semantics und operator overloading Helmut Zeisel <zei2011@liwest.at> - 2017-01-08 07:27 -0800
Re: Move semantics und operator overloading ram@zedat.fu-berlin.de (Stefan Ram) - 2017-01-08 22:26 +0000
Re: Move semantics und operator overloading Helmut Zeisel <zei2011@liwest.at> - 2017-01-09 00:50 -0800
Re: Move semantics und operator overloading ram@zedat.fu-berlin.de (Stefan Ram) - 2017-01-09 20:26 +0000
Re: Move semantics und operator overloading Helmut Zeisel <zei2011@liwest.at> - 2017-01-09 22:59 -0800
Re: Move semantics und operator overloading ram@zedat.fu-berlin.de (Stefan Ram) - 2017-01-10 17:32 +0000
Re: Move semantics und operator overloading Helmut Zeisel <zei2011@liwest.at> - 2017-01-10 09:56 -0800
Re: Move semantics und operator overloading ram@zedat.fu-berlin.de (Stefan Ram) - 2017-01-11 00:21 +0000
Re: Move semantics und operator overloading Helmut Zeisel <zei2011@liwest.at> - 2017-01-10 23:41 -0800
Re: Move semantics und operator overloading ram@zedat.fu-berlin.de (Stefan Ram) - 2017-01-11 10:04 +0000
Re: Move semantics und operator overloading Helmut Zeisel <zei2011@liwest.at> - 2017-01-11 02:33 -0800
Re: Move semantics und operator overloading Bonita Montero <Bonita.Montero@gmail.com> - 2017-01-11 15:43 +0100
Re: Move semantics und operator overloading ram@zedat.fu-berlin.de (Stefan Ram) - 2017-01-11 22:27 +0000
Re: Move semantics und operator overloading Helmut Zeisel <zei2011@liwest.at> - 2017-01-11 22:22 -0800
Re: Move semantics und operator overloading ram@zedat.fu-berlin.de (Stefan Ram) - 2017-01-12 18:15 +0000
Re: Move semantics und operator overloading Helmut Zeisel <zei2011@liwest.at> - 2017-01-12 12:34 -0800
Re: Move semantics und operator overloading Helmut Zeisel <zei2011@liwest.at> - 2017-01-13 03:30 -0800
Re: Move semantics und operator overloading Helmut Zeisel <zei2011@liwest.at> - 2017-01-11 23:53 -0800
Re: Move semantics und operator overloading ram@zedat.fu-berlin.de (Stefan Ram) - 2017-01-12 20:23 +0000
Re: Move semantics und operator overloading Helmut Zeisel <zei2011@liwest.at> - 2017-01-13 00:47 -0800
Re: Move semantics und operator overloading Helmut Zeisel <zei2011@liwest.at> - 2017-01-11 00:15 -0800
csiph-web