🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.std.c++
Article #466

Unnecessary copying of returned object

#466
From: Antony Hodgson
Date: Fri, 31 Aug 1990 23:56
22 lines
1550 bytes
I'm a fairly recent user of C++, but I've already noticed one situation
in which a lot of unnecessary object creation occurs which I think could
be solved by a slight change in syntax.  This is the common situation in
which one creates a temporary object which is intended to be the returned
object, but since it is a local object, one must return a copy of it.
Two objects are therefore created when only one ought to be needed.

Consider the following:

	Vector Vector::operator + ( Vector & A )
		{
			Vector temp;
			// for all valid i, temp[i] = (*this)[i] + A[i]
			return temp;  // copy of temp made here
		} // temp deallocated here

Could an intelligent compiler bypass this copying without the help of
any new syntax?  Or, failing that, would it be reasonable to introduce
a new keyword such as 'returnvalue' which would be defined to have the
same type as the specified return value?  Any comments?

Tony Hodgson	ahodgson@hstbme.mit.edu
Technical Details
Message-ID: <1990Aug31.235606.166@athena.mit.edu>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!mailrus!wuarchive!zaphod.mps.ohio-state.edu!usc!apple!snorkelwacker!bloom-beacon!hstbme.mit.edu!ahodgson
References: <1990Aug31.234937.29938@athena.mit.edu>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!mailrus!wuarchive!zaphod.mps.ohio-state.edu!usc!apple!snorkelwacker!bloom-beacon!hstbme.mit.edu!ahodgson
From: ahodgson@hstbme.mit.edu (Antony Hodgson)
Newsgroups: comp.std.c++
Subject: Unnecessary copying of returned object
Message-ID: <1990Aug31.235606.166@athena.mit.edu>
Date: 31 Aug 90 23:56:06 GMT
References: <1990Aug31.234937.29938@athena.mit.edu>
Sender: daemon@athena.mit.edu (Mr Background)
Reply-To: ahodgson@hstbme.mit.edu.UUCP (Antony Hodgson)
Organization: Massachusetts Institute of Technology
Lines: 22