21 Language support library [language.support]

21.3 Implementation properties [support.limits]

21.3.3 Floating-point type properties [fp.style]

21.3.3.1 Type float_­round_­style [round.style]

namespace std {
  enum float_round_style {
    round_indeterminate       = -1,
    round_toward_zero         =  0,
    round_to_nearest          =  1,
    round_toward_infinity     =  2,
    round_toward_neg_infinity =  3
  };
}

The rounding mode for floating-point arithmetic is characterized by the values:

  • round_­indeterminate if the rounding style is indeterminable

  • round_­toward_­zero if the rounding style is toward zero

  • round_­to_­nearest if the rounding style is to the nearest representable value

  • round_­toward_­infinity if the rounding style is toward infinity

  • round_­toward_­neg_­infinity if the rounding style is toward negative infinity

21.3.3.2 Type float_­denorm_­style [denorm.style]

namespace std {
  enum float_denorm_style {
    denorm_indeterminate = -1,
    denorm_absent = 0,
    denorm_present = 1
  };
}

The presence or absence of subnormal numbers (variable number of exponent bits) is characterized by the values:

  • denorm_­indeterminate if it cannot be determined whether or not the type allows subnormal values

  • denorm_­absent if the type does not allow subnormal values

  • denorm_­present if the type does allow subnormal values