zeek さんが書きました:単にサイズから推定すればそうではないかと提示したにすぎません。
手元の実装で実験して推定したことを、いかなる条件下においても適用できる、とおっしゃっているとわたしが読み取るのは自由ですよね。
それを禁止したり回避したりする策を講じていないのは、誤解するのは誤解するやつが悪いとの考えですか?
zeek さんが書きました:「なぜ生まれたか」と言われれば、質問者さんに聞いていただかないと私からは答えようがないです。
質問文を読む限り質問者さんはサイズを確認して推定していないようです。
仮に、「push_backしたデータは出力されないようです。その
理由は出力されたサイズを確認したからです。」と質問文が続いていたら、正にその通り、確認方法も正しい、ということになるのでしょうか。
zeek さんが書きました:実装から判断すべきなどとは考えておりませんよ。参考に留めるのが適切でしょうね。
規格なり、仕様を判断の拠り所にすべきですね。
逆に
fwrite(&d, sizeof(data), 1, fp);
で実体が書き込まれた環境があっても、先のサイズからの推定から、これが汎用性のあるコードと考えていいか疑問を待たなくてはいけませんね。
ちょっと言葉が足りなくて誤解を与えたようですね。
単に実行を促すのは良くないと思います。どう考えられるかを提示した上で実行を促すのがよいでしょうね。
なお、「 d に直接 f や f2 を」は「 d.flame に直接 f や f2 を」の書き間違いでした。m(__)m
これまでにこのトピックのどこにも規格や仕様を確認しろという指摘はありませんが。
どれだけ言葉を補ってもそもそもの順序が逆なので誤解はなくなりません。
頭の中でどのように考えていても実際には、実装がこうであるから、という指摘を繰り返しているだけです。
たまたま期待通りに動いてしまったらどうして疑問を持つことができるのでしょう。
何かに依存しているというのは、たまたまうまくいくかもしれないし、たまたまうまくいかないかもしれないということです。
たまたまうまくいくことなんて100%ないとしても説明としては完全に間違っています。
「格納されているデータは自前で個別に出力しなければいけません。シリアライズライブラリを利用することもできます。」という回答の理由は「vector型のメンバを書き出すとデータが入っていない(ことが分かる)から」ではなく「読み込んで復元できる保障がないから」です。
回答は「
どのように出力されるかは環境依存なので気にしてはいけません。そのように出力したデータは読み込んでも復元できないので(以下略)。」と展開されるべきだと思います。
実装例を挙げることに意味があるのなら、vectorの実装例を数多く集めたらこのトピックはもっと良くなるのでしょうか。
そんなことをしてもこのトピックにおいては無意味ですね。
たくさん集めることが無意味になるということは、それは自己満足でしかないということです。