> What kind of semantic ambiguities are you talking about?

 

You cannot declare :

int[3] func();

 

Which would have been required for NRVO to function on a c-style array. Even if you tried:

 

auto func()

{

  int var[3];

return var;

}

 

What you get is an int* and not an array, because of the implicit decay of var as the address of the array.

Even with NRVO this would never work for c-style arrays. It is a completely different problem to solve,  and not relevant to RVO.