How to test for type without refs?
Charles Hixson via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Tue Mar 17 09:12:05 PDT 2015
On 03/17/2015 07:27 AM, anonymous via Digitalmars-d-learn wrote:
> 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>.
>
Thanks. That did the job. (I was looking at
...dmd-doc/html/d/traits.html instead.)
More information about the Digitalmars-d-learn
mailing list