Giraffe+ 0.5.66.815
前リリースからの変化
- Boost 1.40
- Structure.new(2)が最後のpaddingをしてなかったのを修正
- C_unionが@alignmentを要素から算出してなかったのを修正
- Object.@alignmentをself.@sizeofを呼ぶメソッドとして定義
Boost 1.40
path("c:\\file") == "c:\\file"がfalseになるバグがあります。1.41ではtrueになります。
Structure.new(2)が最後のpaddingをしてなかったのを修正
忘れてたのか、気づいてなかったのか、よく分かりません。
アラインメントが問題になることというのは実際のところほとんど無いです。たとえばWinAPIの構造体は4byteの要素で構成されてますのでpaddingなしです(#pragma packの影響を受けないようにしてるっぽい)。HDDのSMARTを読み取るのにCの構造体を使いますが、こちらは#pragma pack(1)を明示して使います。
C_unionが@alignmentを要素から算出してなかったのを修正
C_arrayではしっかりと対策してたんですが、unionについては忘れてました。
Object.@alignmentをself.@sizeofを呼ぶメソッドとして定義
こうしたほうが、アラインメントの取得コードが簡潔になるので、そうしました。
@alignmentが独自に定義されてるのは、Structure, C_array, C_unionの3つだけです。