October 12, 2009

MS Visual C++ compiler - информация по классам

У компилятора C++ от майкрософта есть один клевый ключик - /d1reportSingleClassLayoutTYPENAME. Если вместо TYPENAME поставить имя класса, то он выведет при сборке смещения всех полей этого класса. Даже недокументированного:

/d1reportSingleClassLayout_s__ThrowInfo

1>class _s__ThrowInfo size(16):
1> +---
1> 0 | attributes
1> 4 | pmfnUnwind
1> 8 | pForwardCompat
1>12 | pCatchableTypeArray
1> +---