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