Если по теме и слегка серьёзно: нет смысла знать вес самого класса т.к
больше сыграет компилятор в оптимизации(если вы не будете делать максимально тупые вещи по типу везде __forceinline и вызов таких функций по 20+раз)
В HF-трейдинге и геймдеве нужно знать - влезет ли структура в кэш линию.
Ответ 0x10, автор клоун
Указатель - 8 байт
Integer - 4 байта
Padding - 4 байта
В C++ не существует таких вещей, как padding, виртуальная таблица.
Стандарт не даёт гарантий относительно sizeof, offsetof.
Если твой код полагается на какие то конкретные значения оффсетов или размеров, то это UB.
Это значит compiler implementation dependent.
Цель языка C++, чтобы код скомпилированный на всех компиляторах поддерживающих стандарт имел одинаковый behavior.
Например такая вещь как sizeof(pointer to member function)
Itanium ABI будет равен sizeof(void*) для обычных функций-членов. sizeof(void*)*2 для виртуальных.
В Microsoft ABI это sizeof(void*) для обычных. sizeof(void*) для виртуальных.
Но если это virtual and/or multiple inheritance, то sizeof(void*)*2.
Забавно что автор вопроса взялся за такую сложную тему как оценка intelligence quotient по одному вопросу,
однако не справился с тем, чтобы грамотно определить constraints вопроса.
Предположу он даже не догадывается о том что язык C++ и компилятор msvc это разные вещи, просто узнал про паддинги и сразу решил закрепить знания через самоутвердиться за счёт сверстников. Интересно каково будет его удивление, когда узнает про настраиваемые опции комплятора.