名前付き名前空間に対してできるように共用体を定義することは可能ですか? つまり、ユニオンで最初の型を宣言してから、別のファイルで別の型をユニオンに追加できますか?
今のところ、ビット型の共用体 (各派生クラスに対応する unsigned int およびその他) を含むベース クラスがあります。それらを派生クラスで分割し、この結合を少しずつ構築したいと思います。
いいえ。別のコンパイルを使用して、どのように機能させることができますか (それが望ましいというわけではありません)。次のようなものを検討してください。
union U { int i; double d; }
void
f()
{
U aU;
g( &aU );
// ...
}
コンパイラがスタックに割り当てるスペースの量aU
。まだ作成されていない DLL に次のものが含まれているとします。
union U { char buff[1000]; };
void
g( U* aU )
{
// Use all 1000 bytes...
}
(標準によると、上記は未定義の動作であることに注意してください。あなたが求めていることは、それが機能することを必要とします。)