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