return *reinterpret_cast<UInt32*>((reinterpret_cast<char*>(this) + 2));
Struct は pragma pack 1 であり、uint、char、short フィールドの束が含まれています...
UInt32 であるため、最初に unsigned char* に reinterpret_cast する必要がありますか、それとも問題ですか?
また、ここでは速度が重要であり、reinterpret_cast は static_cast とは対照的にキャストの中で最速だと思います。
編集: 構造体は、実際には 2 つのシングルバイト フィールドで構成され、その後に約 16 個の他の構造体の結合が続きます。そのうちの 15 個は最初のフィールドとして UInt32 を持ちます。ないものではないことを簡単に確認してから、2 バイトのオフセットに reinterpret_cast を実行します。