mi::base::numeric_traits_base<T> Struct Template Reference

Base class for the helper class to deduce properties of numeric types defined in this API. More...

`#include <types.h>`

Inheritance diagram for mi::base::numeric_traits_base<T>:

## Static Public Member Functions | |

static T() | min () throw () |

Returns the minimum finite value for `T` (and for floating point types the minimum positive value). More... | |

static T() | max () throw () |

Returns the maximum finite value for `T` . More... | |

static T | negative_max () throw () |

Returns the smallest finite negative value for `T` . More... | |

static T | infinity () throw () |

Returns an infinity value for `T` , if one exists, and `T()` otherwise. More... | |

static T | quiet_NaN () throw () |

Returns a quiet NaN value for `T` , if one exists, and `T()` otherwise. More... | |

static T | signaling_NaN () throw () |

Returns a signaling NaN value for `T` , if one exists, and `T()` otherwise. More... | |

## Static Public Attributes | |

static const bool | is_specialized = false |

Constant that is `true` if and only if this traits is specialized for `T` . More... | |

static const bool | has_infinity = false |

Constant that is `true` if and only if `T` has an infinity representation. More... | |

static const bool | has_quiet_NaN = false |

Constant that is `true` if and only if `T` has a quiet NaN (not-a-number) representation. More... | |

static const bool | has_signaling_NaN = false |

Constant that is `true` if and only if `T` has a signaling NaN (not-a-number) representation. More... | |

template<typename T>

struct mi::base::numeric_traits_base<T>

struct mi::base::numeric_traits_base<T>

Base class for the helper class to deduce properties of numeric types defined in this API.

This class provides the common default implementations of all member of `numeric_traits`

, for its default template as well as all specialization. Thus, specializations just have to redefine what changes.

The default uses default constructed values. It therefore requires that a value of `T`

can be default constructed.