Magnum/Math/TypeTraits.h file

Type traits.

Contents

Namespaces

namespace Magnum
Root namespace.
namespace Magnum::Math
Math library.

Classes

template<class T>
struct Magnum::Math::IsScalar
Whether T is an arithmetic scalar type.
template<class T>
struct Magnum::Math::IsVector
Whether T is an arithmetic vector type.
template<class T>
struct Magnum::Math::IsIntegral
Whether T is integral.
template<class T>
struct Magnum::Math::IsFloatingPoint
Whether T is floating-point.
template<class T>
struct Magnum::Math::IsUnitless
Whether T is a unitless tpye.
template<class T>
struct Magnum::Math::TypeTraits
Traits class for builtin arithmetic types.

Typedefs

template<class T>
using UnderlyingTypeOf = typename Implementation::UnderlyingType<T>::Type
Underlying builtin type for a scalar type.

Defines

#define FLOAT_EQUALITY_PRECISION
Precision when testing floats for equality.
#define DOUBLE_EQUALITY_PRECISION
Precision when testing doubles for equality.
#define LONG_DOUBLE_EQUALITY_PRECISION
Precision when testing long doubles for equality.

Define documentation

#define FLOAT_EQUALITY_PRECISION

Precision when testing floats for equality.

They have "at least" 6 significant digits of precision, taking one digit less for more headroom.

#define DOUBLE_EQUALITY_PRECISION

Precision when testing doubles for equality.

They have "at least" 15 significant digits of precision, taking one digit less for more headroom.

#define LONG_DOUBLE_EQUALITY_PRECISION

Precision when testing long doubles for equality.

They have "at least" 18 significant digits of precision, taking one digit less for more headroom.