New abstraction: Layout

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Sat Feb 17 00:04:16 UTC 2018


I've been long bothered that the builtin .tupleof and our own 
abstractions Fields and RepresentationTypeTuple in std.traits - all omit 
the essential information of field offsets. That makes types that use 
align() to have the same .tupleof, Fields, and RepresentationTypeTuple 
even though they shouldn't.

The right answer is Layout a tuple of (offset, type) pairs describing 
entirely the memory layout of a type. We need such for memory 
allocation, garbage collection, serialization, and more.

The implementation turned out to be quite compact - 81 lines including a 
compile-time mergesort. Destroy!

https://github.com/dlang/phobos/pull/6192


Andrei


More information about the Digitalmars-d mailing list