標準 C++ ライブラリは、型に特殊化された numeric_limits クラスを実装することによって、特定の型を記述します。静的関数と静的定数データメンバーは、型に固有の情報を提供します。標準 C++ ライブラリには、表 20 に示す基本データ型の記述が含まれています。
表 20 -- 標準 C++ ライブラリの基本データ型
bool | char | int | float |
---|---|---|---|
signed char |
short |
double |
|
unsigned char |
long |
long double |
|
wchar_t |
|||
unsigned short |
|||
unsigned int |
|||
unsigned long |
実装によっては、その他のデータ型の情報を提供するものもあります。実装が記述されているかどうかは、静的データメンバーフィールド is_specialized を使用して調べることができます。たとえば、以下のコードは正当で、string データ型がこの機構によって記述されていないことを示します。
cout << "are strings described " << numeric_limits<string>::is_specialized << endl;
特殊化のないデータ型の場合、numeric_limits の関数とデータフィールドによって返される値は、一般に zero か false です。