How to test for type without refs?
anonymous via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Tue Mar 17 07:27:35 PDT 2015
On Tuesday, 17 March 2015 at 14:06:19 UTC, Charles Hixson wrote:
> I thought that in:
> T* user(T)()
> { static assert (T.sizeof < bfHdr.user_.length);
> static assert (__traits(isPOD, T) );
> return cast(T*) bfHdr.user_.ptr;
> }
> the line:
> static assert (__traits(isPOD, T) );
>
> would test for there not being any embedded refs, pointers,
> etc., but
> unittest
> {
> ...
> struct thead2 { string test; }
> auto userTest2 = bf.user!(thead2)();
> }
> executes without complaint. Is there a better way?
There's std.traits.hasIndirections
<http://dlang.org/phobos/std_traits.html#hasIndirections>.
More information about the Digitalmars-d-learn
mailing list