On Sunday, 11 August 2013 at 19:06:07 UTC, Adam D. Ruppe wrote:
On Sunday, 11 August 2013 at 18:33:19 UTC, JS wrote:
The code below does this, but at a cost of verbosity.

I don't see what the difference is in functionality - it looks to me that you just reimplemented what the compiler does automatically with typeid.

The way typeid(obj) works is similar to a virtual function call internally, indeed, Class.vtbl[0] is a pointer to its TypeInfo instance.

But anyway, then the typesameinfo contains functions for the class name and size, pretty similar to what you just did.


What does your implementation give you that typeid() doesn't?

Well, I am wrapping the stuff. But when I've tried to do essentially l the same thing before using the compiler directly, it simply did not work.

If you read Simen Kjaeraas's post you will see it doesn't work directly with interfaces, which is what I was doing.

Hence, either a bug or anti-feature or whatever, the issue was with D and not some weird thing I was trying to do... All this nonsense is trying to work around D doing stupid stuff.

All I know is that in my code, when trying to get the actual object size, even if derived(which may change the size), I would always get 4. I was using an interface as my base type.

Regardless, there are now two solutions and I have to go back to my production code and figure out which one works best for my situation.

Reply via email to