Article View: comp.std.c++
Article #1111Re: return values and destructors
From: Joe Buck
Date: Wed, 18 Nov 1992 21:47
Date: Wed, 18 Nov 1992 21:47
30 lines
2006 bytes
2006 bytes
In article <1992Nov17.204640.9222@microsoft.com> jimad@microsoft.com (Jim Adcock) writes: >>I still believe you're being confused by a compiler bug. Can you quote >>ARM to support your position? Seems clear to me that a throw expression >>has to be evaluated in scope, which means it must be evaluated before >>the destructors, since destructors occurs on exiting scope. Once the >>throw expression has been evaluated, the throw object *has* its value, >>and the destructors can do what they want without affecting its value. In article <Bxx2uD.42x@scd.hp.com> vinoski@ch.apollo.hp.com (Stephen Vinoski) writes: >I don't think that "confusion" is the correct term since I also >believe this to be a compiler bug. My comment about thrown objects >was an attempt to show how ridiculous it is for return expressions to >be affected by destructors of local objects. Remember, not everyone >posting to this thread agrees that this is a problem. Well, I was one of those who said that it wasn't a problem, because I found the original example posted a bit contrived. But Jim Adcock's argument has convinced me that I was wrong; the argument to "return" has to be evaluated before the destructors are evaluated, and the sloppiness on this issue that I was advocating (e.g. assume nothing about destructors that affect the return value in this way) was wrong and would make the exceptions facility very difficult to use. The ARM and draft standard could make this clearer. -- Joe Buck jbuck@ohm.berkeley.edu
Technical Details
Message-ID:
<1eedkqINN9i2@agate.berkeley.edu>Path:
arc1-ca.pugleaf.net!sparky!uunet!charon.amdahl.com!pacbell.com!ames!agate!forney.berkeley.edu!jbuckReferences:
<BxMxxB.CMp@scd.hp.com> <1992Nov17.204640.9222@microsoft.com> <Bxx2uD.42x@scd.hp.com>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!charon.amdahl.com!pacbell.com!ames!agate!forney.berkeley.edu!jbuck From: jbuck@forney.berkeley.edu (Joe Buck) Newsgroups: comp.std.c++ Subject: Re: return values and destructors Date: 18 Nov 1992 21:47:06 GMT Organization: U. C. Berkeley Lines: 30 Message-ID: <1eedkqINN9i2@agate.berkeley.edu> References: <BxMxxB.CMp@scd.hp.com> <1992Nov17.204640.9222@microsoft.com> <Bxx2uD.42x@scd.hp.com> NNTP-Posting-Host: forney.berkeley.edu