DiCE API nvidia_logo_transpbg.gif Up
mi::base::numeric_traits<T> Struct Template Reference

Helper class to deduce properties of numeric types defined in this API. More...

#include <types.h>

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

Additional Inherited Members

- Static Public Member Functions inherited from mi::base::numeric_traits_base<T>
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 inherited from mi::base::numeric_traits_base<T>
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...
 

Detailed Description

template<typename T>
struct mi::base::numeric_traits<T>

Helper class to deduce properties of numeric types defined in this API.

This class can be used in generic code to deduce the limits and special values, such as a signaling NaN, for number types defined in this API, such as mi::Uint32 and mi::Float64.

The default template defines all members, see mi::base::numeric_traits_base, but with default constructed or false values. It requires that a value of T can be default constructed.

This traits class is similar to std::numeric_limits<T>, and in case of overlap behaves in the same way.