arithmetic type / numeric type

言葉の定義のメモ.

  • 符号付整数型 (signed integer types),(§3.9.1/2)で定義
    • signed char
    • signed short int
    • signed int
    • signed long int

(signed short int, signed int, signed long int は各々 short int (short), int, long int (long) という別名を持つ. char と signed char は別の型であることに注意

  • 符号なし整数型 (unsigned integer types),(§3.9.1/3)で定義
    • unsigned char
    • unsigned short int
    • unsigned int
    • unsigned long int
  • 浮動小数点型 (floating-point types),(§3.9.1/8)で定義
    • float
    • double
    • long double
  • 整数型 (integral and integer types),(§3.9.1/7)で定義
    • {符号付整数型}
    • {符号なし整数型}
    • bool
    • char
    • wchar_t
  • 算術型 (arithmetic types),(§3.9.1/8)で定義
  • 数値型 (numeric types), http://tinyurl.com/a5b3u より定義を拝借
    • {算術型}
    • ユーザ定義型のうち,以下の要件を満たすもの
      • 数値を表していること
      • 少なくともある1つの算術型に変換可能であること
      • 表現できる数値の範囲(無限であっても良い)と精度(動的あるいは無限であっても良い)が規定されていること
      • その型に対する std::numeric_limits の特殊化版が提供されていること(特殊化版が提供されているかどうかは std::numeric_limits< T >::is_specialized によって示される)

fundamental types (C++ に組み込みで存在する型)のうち,数値を表現する型を算術型 (arithmetic types) と呼ぶのだけれど,じゃあ fundamental types でない,つまりユーザ定義型で数値を表現する型はどう呼べばよいの?という疑問を調べた結果が上.Boost では数値型 (numeric types) という言葉が定義されていますにゃ〜(単に数値型とだけいうと算術型を含むので注意).