、、、またはコンパイラ固有の拡張機能(非標準の組み込み型を除く)を使用せず#if
にstdint.h
、inttypes.h
他のすべてのC ++機能(たとえばC ++ 11type_traits
を含む)を自由に使用して、
typedef {some implementation-specific type} int_least64;
少なくとも64ビットの精度を提供する実装固有のタイプがあり、それ以外の場合はコンパイル時エラーが発生する場合に限りますか?
コンストラクトは、標準のプロパティ( 、 )__int64
だけでなく、目的のプロパティ(MSVC ++など)を持つ可能性のある非標準の組み込みタイプを検出する必要があります。複数のタイプが要件に適合する場合は、適格な最小のものを選択する必要があります。理想的には、エラーを発生させるだけでなく、使用したり、任意の大きさの整数を検出したりすることも一般化できます(たとえば、一部のコンパイラーは現在提供しています)。long
long long
enable_if
__int128