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>.