Is my T.init elaborate (eg: Not "0")

Tobias Pankrath via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon May 5 14:51:12 PDT 2014


On Monday, 5 May 2014 at 20:54:52 UTC, monarch_dodra wrote:
> I'm looking for a way, to *statically* know if my type's 
> ".init" value is nothing but zeros.
>
> I need this to initialize a dynamic array: If the T.init is 
> nothing but 0, then I can just memset the whole array in a 
> single call. Otherwise, I have to memcpy T.init individually N 
> times.
>
> Currently, I can (runtime) use "typeid(T).init.ptr": Types that 
> don't have an an elaborate .init will return null.
>
> I'm trying to find the same result, without a runtime check. 
> Anybody know how? I'd write a function that tests the bits of a 
> T.init copy, but reinterpreting is not allowed during CTFE...

Foreach member x of Type X of T, check if T.init.x equals X.init?


More information about the Digitalmars-d-learn mailing list