On Thursday, 10 May 2012 at 17:41:23 UTC, dennis luehring wrote:
Am 10.05.2012 19:07, schrieb Tove:
auto my_extended_alloca(size_t size, void* buf=alloca(size))
{
   return buf;
}

and whats the difference to?

auto my_extended_alloca(size_t size, void* buf)
{
  return alloca(size);
}

except that you hide the alloca in the interface
which can be easily overwritten with malloc or something?

auto x = my_extended_alloca( 10, malloc(100) ); ???

When used in the parameter list, the alloca() is injected into the parent scope.

Your version doesn't work at all, as the allocation automatically ends with the scope of my_extended_alloca() instead of the scope of the caller!

Reply via email to