負の整数値の内部表現が2の補数かどうかを調べるメタ関数を作ってみましょう。これは実はそんなに難しくありません。
-1の下位2ビットを調べてやればすぐに分かります。-1の下位2ビットが11(= 3)であれば2の補数表現です。
C++14以降であれば、次のようにしておけば多少は使い勝手がよくなります。
ところで、現実には2の補数表現以外の処理系に遭遇する可能性はほとんどありません。こういうのもあるということで参考にしていただければ幸いです。
負の整数値の内部表現が2の補数かどうかを調べるメタ関数を作ってみましょう。これは実はそんなに難しくありません。
-1の下位2ビットを調べてやればすぐに分かります。-1の下位2ビットが11(= 3)であれば2の補数表現です。
C++14以降であれば、次のようにしておけば多少は使い勝手がよくなります。
ところで、現実には2の補数表現以外の処理系に遭遇する可能性はほとんどありません。こういうのもあるということで参考にしていただければ幸いです。