On Jan 10, 2013, at 1:56 PM, Markos Zaharioudakis <markos...@yahoo.com> wrote:
> Here is the 1st problem: inside mem_sizeof(const XmlNode& t), sizeof(T) (or > sizeof(t)) should return 52 if t is actually an ElementNode. Of course, this > is not possible since sizeof(T) is computed statically (i.e., at compile > time). Oh. I get it now. That's a serious problem. One solution I can think of is to have size_traits<T> have another member function... something like static_sizeof(T const&). Unfortunately the only way that can work is if every class in a class hierarchy implements a virtual member function static_size() whose implementation is ALWAYS: size_t static_size() const { return sizeof( *this ); } As for why the template trick doesn't work, I don't know yet. Perhaps it's because XmlNode doesn't implement its own alloc_size() but instead inherits it from Item (though I could have sworn I tested this and it worked). - Paul -- https://code.launchpad.net/~zorba-coders/zorba/feature-mem_size/+merge/114764 Your team Zorba Coders is subscribed to branch lp:zorba. -- Mailing list: https://launchpad.net/~zorba-coders Post to : zorba-coders@lists.launchpad.net Unsubscribe : https://launchpad.net/~zorba-coders More help : https://help.launchpad.net/ListHelp