cisst-saw
Loading...
Searching...
No Matches
cmnTypeTraits.h File Reference

Declaration of the class cmnTypeTraits. More...

#include <cisstCommon/cmnPortability.h>
#include <string>
#include <limits.h>
#include <float.h>
#include <cisstCommon/cmnExport.h>

Go to the source code of this file.

Classes

class  cmnVaArgPromotion< _type >
class  cmnVaArgPromotion< float >
class  cmnVaArgPromotion< short >
class  cmnVaArgPromotion< char >
class  cmnVaArgPromotion< unsigned short >
class  cmnVaArgPromotion< unsigned char >
class  cmnVaArgPromotion< bool >
class  cmnTypeTraits< _elementType >
 A collection of useful information about the C++ basic types, represented in a generic programming way. More...
class  cmnIsDerivedFrom< T, Base >
class  cmnIsDerivedFromTemplated< T, Base >
struct  cmnIsDerivedFromAssert< Derived, Base, b >
struct  cmnIsDerivedFromAssert< Derived, Base, true >

Macros

#define _cmnTypeTraits_h
#define CMN_TYPE_TRAITS_SPECIALIZE_LIMITS(type, maxPositiveValue, minPositiveValue, maxNegativeValue, minNegativeValue)
#define CMN_IS_DERIVED_FROM_ASSERT(Derived, Base)

Functions

 CMN_TYPE_TRAITS_SPECIALIZE_LIMITS (float, FLT_MAX, FLT_MIN, -FLT_MIN, -FLT_MAX)
 CMN_TYPE_TRAITS_SPECIALIZE_LIMITS (double, DBL_MAX, DBL_MIN, -DBL_MIN, -DBL_MAX)
 CMN_TYPE_TRAITS_SPECIALIZE_LIMITS (int, INT_MAX, 1, -1, INT_MIN)
 CMN_TYPE_TRAITS_SPECIALIZE_LIMITS (unsigned int, UINT_MAX, 1, 0, 0)
 CMN_TYPE_TRAITS_SPECIALIZE_LIMITS (char, CHAR_MAX, 1, -1, CHAR_MIN)
 CMN_TYPE_TRAITS_SPECIALIZE_LIMITS (unsigned char, CHAR_MAX, 1, 0, 0)
 CMN_TYPE_TRAITS_SPECIALIZE_LIMITS (short, SHRT_MAX, 1, -1, SHRT_MIN)
 CMN_TYPE_TRAITS_SPECIALIZE_LIMITS (unsigned short, SHRT_MAX, 1, 0, 0)
 CMN_TYPE_TRAITS_SPECIALIZE_LIMITS (long int, LLONG_MAX, 1, -1, LLONG_MIN)
 CMN_TYPE_TRAITS_SPECIALIZE_LIMITS (long long int, LLONG_MAX, 1, -1, LLONG_MIN)
 CMN_TYPE_TRAITS_SPECIALIZE_LIMITS (unsigned long int, LLONG_MAX, 1, 0, 0)
 CMN_TYPE_TRAITS_SPECIALIZE_LIMITS (unsigned long long int, LLONG_MAX, 1, 0, 0)
 CMN_TYPE_TRAITS_SPECIALIZE_LIMITS (bool, true, true, false, false)

Detailed Description

Declaration of the class cmnTypeTraits.

Macro Definition Documentation

◆ _cmnTypeTraits_h

#define _cmnTypeTraits_h

◆ CMN_IS_DERIVED_FROM_ASSERT

#define CMN_IS_DERIVED_FROM_ASSERT ( Derived,
Base )
Value:

◆ CMN_TYPE_TRAITS_SPECIALIZE_LIMITS

#define CMN_TYPE_TRAITS_SPECIALIZE_LIMITS ( type,
maxPositiveValue,
minPositiveValue,
maxNegativeValue,
minNegativeValue )
Value:
template<> inline type cmnTypeTraits<type>::MaxPositiveValue(void) { \
return maxPositiveValue; \
} \
template<> inline type cmnTypeTraits<type>::MinPositiveValue(void) { \
return minPositiveValue; \
} \
template<> inline type cmnTypeTraits<type>::MaxNegativeValue(void) { \
return maxNegativeValue; \
} \
template<> inline type cmnTypeTraits<type>::MinNegativeValue(void) { \
return minNegativeValue; \
}
static CISST_EXPORT Type MaxNegativeValue(void)
static CISST_EXPORT Type MaxPositiveValue(void)
static CISST_EXPORT Type MinPositiveValue(void)
static CISST_EXPORT Type MinNegativeValue(void)

Function Documentation

◆ CMN_TYPE_TRAITS_SPECIALIZE_LIMITS() [1/13]

CMN_TYPE_TRAITS_SPECIALIZE_LIMITS ( bool ,
true ,
true ,
false ,
false  )

◆ CMN_TYPE_TRAITS_SPECIALIZE_LIMITS() [2/13]

CMN_TYPE_TRAITS_SPECIALIZE_LIMITS ( char ,
CHAR_MAX ,
1 ,
- 1,
CHAR_MIN  )

◆ CMN_TYPE_TRAITS_SPECIALIZE_LIMITS() [3/13]

CMN_TYPE_TRAITS_SPECIALIZE_LIMITS ( double ,
DBL_MAX ,
DBL_MIN ,
- DBL_MIN,
- DBL_MAX )

◆ CMN_TYPE_TRAITS_SPECIALIZE_LIMITS() [4/13]

CMN_TYPE_TRAITS_SPECIALIZE_LIMITS ( float ,
FLT_MAX ,
FLT_MIN ,
- FLT_MIN,
- FLT_MAX )

◆ CMN_TYPE_TRAITS_SPECIALIZE_LIMITS() [5/13]

CMN_TYPE_TRAITS_SPECIALIZE_LIMITS ( int ,
INT_MAX ,
1 ,
- 1,
INT_MIN  )

◆ CMN_TYPE_TRAITS_SPECIALIZE_LIMITS() [6/13]

CMN_TYPE_TRAITS_SPECIALIZE_LIMITS ( long int ,
LLONG_MAX ,
1 ,
- 1,
LLONG_MIN  )

◆ CMN_TYPE_TRAITS_SPECIALIZE_LIMITS() [7/13]

CMN_TYPE_TRAITS_SPECIALIZE_LIMITS ( long long int ,
LLONG_MAX ,
1 ,
- 1,
LLONG_MIN  )

◆ CMN_TYPE_TRAITS_SPECIALIZE_LIMITS() [8/13]

CMN_TYPE_TRAITS_SPECIALIZE_LIMITS ( short ,
SHRT_MAX ,
1 ,
- 1,
SHRT_MIN  )

◆ CMN_TYPE_TRAITS_SPECIALIZE_LIMITS() [9/13]

CMN_TYPE_TRAITS_SPECIALIZE_LIMITS ( unsigned char ,
CHAR_MAX ,
1 ,
0 ,
0  )

◆ CMN_TYPE_TRAITS_SPECIALIZE_LIMITS() [10/13]

CMN_TYPE_TRAITS_SPECIALIZE_LIMITS ( unsigned int ,
UINT_MAX ,
1 ,
0 ,
0  )

◆ CMN_TYPE_TRAITS_SPECIALIZE_LIMITS() [11/13]

CMN_TYPE_TRAITS_SPECIALIZE_LIMITS ( unsigned long int ,
LLONG_MAX ,
1 ,
0 ,
0  )

◆ CMN_TYPE_TRAITS_SPECIALIZE_LIMITS() [12/13]

CMN_TYPE_TRAITS_SPECIALIZE_LIMITS ( unsigned long long int ,
LLONG_MAX ,
1 ,
0 ,
0  )

◆ CMN_TYPE_TRAITS_SPECIALIZE_LIMITS() [13/13]

CMN_TYPE_TRAITS_SPECIALIZE_LIMITS ( unsigned short ,
SHRT_MAX ,
1 ,
0 ,
0  )