More on C++ stack arrays

dennis luehring dl.soluz at gmx.net
Mon Oct 21 07:04:22 PDT 2013


Am 21.10.2013 15:04, schrieb Manu:
> On 21 October 2013 21:24, Denis Shelomovskij <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).
>


looks like Walters solution - but cleaner

"...Implementation note:
For small strings  tempCString will use stack allocated buffer, for 
large strings (approximately 1000 characters and more) it will allocate 
temporary one from unstd.memory.allocation.threadHeap..."

does that mean that tempCString reserves minimum 1000 bytes on stack
else using heap?

if so i would prefer a template based version where i can put in the size


More information about the Digitalmars-d mailing list