Output contract's arguements

Peter Alexander peter.alexander.au at gmail.com
Thu Sep 19 03:58:16 PDT 2013


On Thursday, 19 September 2013 at 10:44:32 UTC, monarch_dodra 
wrote:
> On Thursday, 19 September 2013 at 10:38:37 UTC, Joseph Rushton 
> Wakeling wrote:
>> On 18/09/13 14:11, monarch_dodra wrote:
>>> IMO, this is wrong. When calling a function with an out 
>>> contract, the arguments
>>> should *also* be passed to the out contract directly. "out" 
>>> should not be
>>> expected to run on the body's "sloppy seconds".
>>
>> I'm not sure I understand your objection here.  As I 
>> understood it the whole point of an "out" contract was to 
>> check the state of everything _after the function has exited_.
>
> Exactly.
>
> If the function has already exited, then why is the state of he 
> arguments modified? I though pass by value meant that the 
> function operated on its own copy?

What exactly would you like this to do? v only exists inside the 
body of the function. There is no v after the function exits. If 
you check v in the output contract then you are checking the 
final value of v.


More information about the Digitalmars-d mailing list