John-Carmack quotes the D programming language
David Nadlinger
see at klickverbot.at
Fri Apr 27 07:59:38 PDT 2012
On Friday, 27 April 2012 at 14:51:01 UTC, bearophile wrote:
> John Carmack:
>>Returning everything by value is the natural functional
>>programming style, but relying on compilers to always perform
>>return value optimization can be hazardous to performance, so
>>passing reference parameter for output of complex data
>>structures is often justifiable, but it has the unfortunate
>>effect of preventing you from declaring the returned value as
>>const to enforce single assignment.<
>
> Is this what he is talking about?
>
> class Foo {
> int x;
> }
> const(Foo) bar() pure {
> auto f = new Foo;
> f.x = 1;
> return f;
> }
> void main() pure {}
No, he is referring to the call site of the function which
returns something by ref, where you can't declare the »target«
const:
---
/* const */ Foo foo;
initializeFoo(foo);
---
David
More information about the Digitalmars-d
mailing list