Jarrett Billingsley Wrote: > On Sat, Oct 3, 2009 at 5:50 PM, Justin Johansson <n...@spam.com> wrote: > > How does one determine the sizeof (in bytes) of an instance of a class in D? > > > > .sizeof works as advertised for structs, but for reference types, > > .sizeof yields the sizeof the referencing variable (effectively same as > > size of a pointer) > > and not the size of the underlying instance. > > > > I did try scanning the NG and read spec_D1.00.pdf. Perhaps I missed it in > > the latter. > > > > btw. I was poking under the hood of std.xml and though, wow, instances of > > Element > > class look humongous, and so I'm interested to how exactly how humongous.
> There's no way to get it at compile-time in D1. The best you can do is > Class.classinfo.init.length. > > In D2, you can use __traits(classInstanceSize, Class). Thanks Jeremie and Jarrett for answers. For investigative purposes (rather than adding up class member sizes in my head), would I get a fair answer if I copied the class data members into a struct, did a struct sizeof and added 4 bytes to allow for a virtual function table pointer (in the class and assuming the class has a VFT)?