Copy elision by spec
    Lars T. Kyllingstad 
    public at kyllingen.net
       
    Mon Nov  4 03:41:03 PST 2013
    
    
  
On Monday, 4 November 2013 at 07:17:12 UTC, monarch_dodra wrote:
> http://d.puremagic.com/issues/show_bug.cgi?id=11287
>
> According to the conversation, NRVO is supposed to be part of 
> the spec, and you should expect it to work.
I'm not an expert, but aren't there cases where NRVO can't be 
applied?  For example:
   S foo()
   {
      S s1;
      // Initialize s1
      S s2;
      // Initialize s2
      if (someCondition) return s1;
      else return s2;
   }
However, the return value can always be *moved*.
    
    
More information about the Digitalmars-d
mailing list