ML Reference
MeVis/Foundation/Sources/ML/include/mlTemplateSupport.h File Reference

This file contains a set of convenience functions to determine information about a currently used template data type. More...

#include "mlInitSystemML.h"
#include "mlTypeTraits.h"

Go to the source code of this file.

Functions

template<typename T >
MLint32 MLIsCarrierTypePtr (const T *)
template<typename T >
MLint32 MLIsCarrierInTypePtr (const T *)
template<typename T >
MLint32 MLIsAnyCarrierTypePtr (const T *)
template<typename T >
MLint32 MLIsStandardTypePtr (const T *)
template<typename T >
size_t MLGetPhysicalDataTypeSizeFromPtr (const T *)
template<typename OUTDTYPE , typename INDTYPE >
MLint32 MLTTypeInfosPushAndSetBoth (const OUTDTYPE *outPtr, MLDataType outDT, const INDTYPE *inPtr, MLDataType inDT)
Test for standard (built-in) typed pointers: Return 1 (=true) for standard types and otherwise return 0(=false).

Disable all C++ specific things for this C file because it it must fulfil C-API requirements, i.e., it must not use c++.

The template stuff does not make sense in C anyway.

template<typename T >
MLint32 MLIsScalarTypePtr (const T *)
Test for signed typed pointers: Return 1 (=true) for signed types and otherwise return 0(=false). For registered types the correct type must have been set with a MLTypeInfosPushAndSet* function.
template<typename T >
MLint32 MLIsSignedTypePtr (const T *)
Return the MLDataType for the currently used template data type pointer. For registered types the correct type must have been set with a MLTypeInfosPushAndSet* function.
template<typename T >
MLDataType MLGetDataTypeFromPtr (const T *)
Return the size in bytes of the physically compiled type for the currently used template data type pointer.
template<typename T >
size_t MLGetDataTypeSizeFromPtr (const T *)
Test for standard (built-in) integer typed pointers from 8 to 32 bits: Return 1 (=true) for those types and otherwise (also for integer typed registered types) return 0(=false).
template<typename T >
MLint32 MLIs8_16_Or_32BitIntegerTypePtr (const T *)
Test for built-in 8 bit signed or unsigned integer typed pointers: Return 1 (=true) for those types and otherwise return 0(=false).
template<typename T >
MLint32 MLIs8BitIntegerTypePtr (const T *)
Test for built-in 16 bit signed or unsigned integer typed pointers: Return 1 (=true) for those types and otherwise return 0(=false).
template<typename T >
MLint32 MLIs16BitIntegerTypePtr (const T *)
Test for built-in 32 bit signed or unsigned integer typed pointers: Return 1 (=true) for those types and otherwise return 0(=false).
template<typename T >
MLint32 MLIs32BitIntegerTypePtr (const T *)
Test for built-in 64 bit signed or unsigned typed pointers: Return 1 (=true) for those types and otherwise return 0(=false).
template<typename T >
MLint32 MLIs64BitIntegerTypePtr (const T *)
Test for built-in integer typed pointers: Return 1 (=true) for those types and otherwise return 0(=false).
template<typename T >
MLint32 MLIsBuiltInIntegerTypePtr (const T *)
Test for built-in floating point typed pointers: Return 1 (=true) for those types and otherwise return 0(=false).
template<typename T >
MLint32 MLIsBuiltInFloatingPointTypePtr (const T *)

Detailed Description

This file contains a set of convenience functions to determine information about a currently used template data type.

General comments to this file:

  • If this template stuff is used then it is typically very time critical, thus tracing should be avoided if possible. They are intended as traits where different template code is used after compilation.
  • Most of these templates are detected as constants after instantiation, so that they're optimized "away" by compilers. So adding calculating functionality or even tracing would make them time critical where before was nothing done after compiler optimization.
Author:
Wolf Spindler
Date:
11/2003

Definition in file mlTemplateSupport.h.


Function Documentation

template<typename T >
MLDataType MLGetDataTypeFromPtr ( const T *  ) [inline]

Definition at line 53 of file mlTemplateSupport.h.

template<typename T >
size_t MLGetDataTypeSizeFromPtr ( const T *  ) [inline]

Definition at line 59 of file mlTemplateSupport.h.

template<typename T >
size_t MLGetPhysicalDataTypeSizeFromPtr ( const T *  ) [inline]

Definition at line 120 of file mlTemplateSupport.h.

template<typename T >
MLint32 MLIs16BitIntegerTypePtr ( const T *  ) [inline]

Definition at line 77 of file mlTemplateSupport.h.

template<typename T >
MLint32 MLIs32BitIntegerTypePtr ( const T *  ) [inline]

Definition at line 83 of file mlTemplateSupport.h.

template<typename T >
MLint32 MLIs64BitIntegerTypePtr ( const T *  ) [inline]

Definition at line 89 of file mlTemplateSupport.h.

template<typename T >
MLint32 MLIs8_16_Or_32BitIntegerTypePtr ( const T *  ) [inline]

Definition at line 65 of file mlTemplateSupport.h.

template<typename T >
MLint32 MLIs8BitIntegerTypePtr ( const T *  ) [inline]

Definition at line 71 of file mlTemplateSupport.h.

template<typename T >
MLint32 MLIsAnyCarrierTypePtr ( const T *  ) [inline]

Definition at line 114 of file mlTemplateSupport.h.

template<typename T >
MLint32 MLIsBuiltInFloatingPointTypePtr ( const T *  ) [inline]

Definition at line 101 of file mlTemplateSupport.h.

template<typename T >
MLint32 MLIsBuiltInIntegerTypePtr ( const T *  ) [inline]

Definition at line 95 of file mlTemplateSupport.h.

References OverloadSelector::isBuiltInIntegerType().

template<typename T >
MLint32 MLIsCarrierInTypePtr ( const T *  ) [inline]

Definition at line 111 of file mlTemplateSupport.h.

template<typename T >
MLint32 MLIsCarrierTypePtr ( const T *  ) [inline]

Definition at line 108 of file mlTemplateSupport.h.

template<typename T >
MLint32 MLIsScalarTypePtr ( const T *  ) [inline]

Definition at line 40 of file mlTemplateSupport.h.

Referenced by ml::TSubImage< DATATYPE >::copySubImageTyped().

template<typename T >
MLint32 MLIsSignedTypePtr ( const T *  ) [inline]

Definition at line 47 of file mlTemplateSupport.h.

template<typename T >
MLint32 MLIsStandardTypePtr ( const T *  ) [inline]

Definition at line 117 of file mlTemplateSupport.h.

template<typename OUTDTYPE , typename INDTYPE >
MLint32 MLTTypeInfosPushAndSetBoth ( const OUTDTYPE *  outPtr,
MLDataType  outDT,
const INDTYPE *  inPtr,
MLDataType  inDT 
) [inline]

Definition at line 124 of file mlTemplateSupport.h.