データのストリームを、実際には可変数の他の構造体をメンバーとして持つ構造体に直接キャストしようとしています。次に例を示します。
struct player
{
double lastTimePlayed;
double timeJoined;
};
struct team
{
uint32_t numberOfPlayers;
player everyone[];
};
それから私は電話します:
team *myTeam = (cache_team*)get_stream();
これはある種のシリアライゼーションのように機能するはずです。ストリームが上記のように正確に構造化されていることはわかっていますが、numberOfPlayers が変数であるという問題があります。
私のストリームは、チームのプレーヤー数を表す 4 バイトで始まり、各プレーヤーが含まれます (この場合、各プレーヤーには lastTimePlayed と timeJoined しかありません)。
投稿されたコードは機能しているようですが、デフォルトの代入コンストラクターとコピーコンストラクターのためにコンパイラーから警告が表示されますが、私の質問は、これを別の方法、より良い方法で行うことができるということです。
ところで、私のストリームは実際にはファイルへの直接マッピングであり、私の目標は構造をファイル自体であるかのように使用することです (その部分は適切に機能しています)。