More on C++ stack arrays

Lionello Lunesu lionello at lunesu.remove.com
Tue Oct 22 14:05:36 PDT 2013


On 10/21/13 15:04, Manu wrote:
> On 21 October 2013 21:24, Denis Shelomovskij
> <verylonglogin.reg at gmail.com <mailto:verylonglogin.reg at gmail.com>> wrote:
>
>     21.10.2013 14:30, Manu пишет:
>
>         System interface functions that pass zero-terminated strings
>         through to
>         the OS are the primary offender, needless garbage, those should
>         be on
>         the stack.
>
>         I like to use alloca too where it's appropriate. I'd definitely
>         like if
>         D had a variable-sized static array syntax for pretty-ing alloca.
>         I thought about something similar using alloca via a mixin
>         template, but
>         that feels really hackey!
>
>
>     No hacks needed. See `unstd.c.string` module from previous post:
>     http://forum.dlang.org/thread/__lqdktyndevxfcewgthcj@forum.__dlang.org?page=2#post-l42evp:__241ok7:241:40digitalmars.com
>     <http://forum.dlang.org/thread/lqdktyndevxfcewgthcj@forum.dlang.org?page=2#post-l42evp:241ok7:241:40digitalmars.com>
>
>
> Super awesome! Phobos devs should be encouraged to use these in
> non-recursive functions (particularly OS pass-through's).

Careful! Alloca doesn't get cleaned up when used in loops!

foreach(t; 0..1000) { int[t] stack_overflow; }


More information about the Digitalmars-d mailing list