[4115]
Re:PODの継承について
ryoji
▼ もかさん
> この記述は大抵のコンパイラで動作しそうですけど、どの程度信頼できるんでしょう。
> データ型・整合性(alignment)が同じなら規格上同じとみなせるのでしょうか?
>
> #C++の仕様がいまいち理解できていないので、思い切って聞いて見ます。
> #特に64ビット版が不安です。
ご指摘ありがとうございます。
すいません、厳密なことは考えてませんでした。
メモリ配置って C++ の規格外(実装依存)かな?でも、SDK のヘッダーファイルが利用可能なコンパイラだったら、VC と同じに配置するようになってるはず。
また、派生クラスの配置についても Winodows 用コンパイラを使う限りにおいて VC との差異は考えなくてもいいような気がします。
(でなきゃそのコンパイラは OLE/COM インターフェイス系の API をまともに扱えないんじゃないかしら?)
64ビット版については、VS2005β2 に付属の CommDlg.h から辿ってみると構造体のパック方式を明示指定するのが正解かもしれません。
#ifdef _WIN64
#include <pshpack8.h>
#else
#include <pshpack1.h>
#endif
(OPENFILENAMEZ 宣言)
#include <poppack.h>
かなぁ?
他コンパイラをあまり使ったことが無い、64ビット検証環境も無いので全部推測で、自信無しです。
あとは詳しい方のフォローをお待ちします。m(__)m