正確なビットパターンを保持している同じ幅の符号なし整数に値の型を変換したいと思います。たとえば、64ビットの浮動小数点型はulongとして型付けされますが、ビットパターンは同じです。入力型は不特定ですが、通常のD整数型の1つに収まる入力値よりも大きな入力値を処理する必要はないため、集計やメモリ内オブジェクトはありません。私はconst性に対処についてのいくつかの意思決定を行うべきとのように、適切にこれを行う方法の提案を行うことができ、最初の符号なし整数のいくつかの種類であるタイプの生成に行くを持っていたD型強制でキャスティング:値の変換を行わずにビットパターンを保持する
入力型の不変性。
、私は、生成されたコードを検討した、
(* cast(const T_uint_result *) & input_val)
動作しているようです
のようなものを実行して値の変換を避けるために、コンパイラを強制しますが、私はその後、適切なタイプを得ましたこれに非常に不満を抱いています。多くの場合、ストレートキャストは問題ありませんが、コンパイラがビットパターンを変更する可能性があるため、一般的に私の目的には安全ではありません。