1

したがって、この質問が出てきました。かなり単純なコーディングを行いながら、次のことを検討してください。

for(unsigned int x=0x00000000; x<0xFFFFFFFF; x++)
{
    // ...
}

上記のコードは、'sizeof(unsigned int) >= 4' を想定して期待どおりに動作しますが、一部のプラットフォームではこれが当てはまらない場合があるため、これに似たものに興味があります。

for(RangeBasedInt<0x00000000, 0xFFFFFFFF>::type x=0x00000000; x<0xFFFFFFFF; x++)
{
    // ...
}

'RangeInt' はテンプレートで、'type' は MINIMUM (0x00000000) から MAXIMUM (0xFFFFFFFF) までの値の範囲を保持するのに十分な大きさの最小の整数型です。

template<int MINIMUM, int MAXIMUM>
struct RangeBasedInt
{
    // Type based upon MINIMUM and MAXIMUM
    typedef /* MAGIC */ type;
};

したがって、問題は単純です。

  1. これは標準ライブラリのどこかに実装されていますか?
  2. そうでない場合、これを実装するライブラリはありますか、または std::numeric_limits に基づいて独自に構築する必要がありますか
4

1 に答える 1