On Sunday, 11 August 2013 at 16:43:09 UTC, Dicebot wrote:
On Sunday, 11 August 2013 at 16:40:48 UTC, Maxim Fomin wrote:
Yes, this is answer to the question. By the way, it can be simply

enum S = typeid(Whatever).init.length;

If exact type is statically known, no ClassInfo is required:

enum S = __traits(classInstanceSize, Whatever);

This is essentially what I'm doing BUT I am trying to avoid having to repeat the exact same crap in every class because it is time consuming, verbose, and error prone.



For those that care, here is a snippet of what I am doing. For those that are bitches, GTFO. Remember, I'm a troll so everything I say or do here is irrelevant, so I don't even know why you are reading this in the first place.

http://dpaste.dzfl.pl/d295bbbb


Note that because it is a function call it is extremely expensive compared to a compile time literal. Disassembly shows that the actual size is a constant so the vtabl lookup and a function call is all that is required. I'd like to minimize the overhead as much as possible and, ideally not have to manually add the template mixins to each class(it would be nice if it were automated). I'm trying to reduce the costs of RT lookup as much as possible(as I feel it is not necessary).





Reply via email to