私は以下のテンプレート関数を使って、任意の標準型のデータをバイナリ出力ストリームにダンプします。cスタイルのキャストとreinterpret_castの比較
template<typename T> static void
dump (const T& v, ostream& o) {
o.write (reinterpret_cast<const char*>(&v), sizeof(T));
}
reinterpret_castではなく、Cスタイル(const char *)を使用することもできます。 reinterpret_castを使用する特別な理由はありますか?私は、reinterpret_castがびっくりしたいくつかの他の投稿を読んでいます。しかし、上記の使用法は合法であり、他のものに置き換えることはできません。
おかげ
私はあなたがその結果を知っていると思います(同じアーキテクチャで同じコンパイラで同じオプションでコンパイルされたプログラムでしか結果のファイルを読み取ることができません)。 – curiousguy
誰かが私にこのことを言ってもらうつもりですが、Cスタイルのキャストを使用したいと思うなら、あなたはいつも見逃せないジェネリック・ラジカルなコメントを残すことができます。 Cであなたの 'const'を見つける方法もいくつかありました。 ¯| _(ツ))_ |¯もちろん、危険に気をつけるべきです。 –