И это всё МОЁ

Собственно есть подобный код:


class Obj 
{public:
};

class P: public Obj {
public: P() {}

};

class O: public Obj {
int x = 42;
public: O() {}
};

void foo(Obj* obj) {
auto size = ????(obj);
}


Могу ли я как то получить в функции foo размер объекта который является аргументом? Например при foo(new O()) я ожидаю получить sizeof(int)