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