ML Reference
mlTemplateSupport.h File Reference
#include "mlInitSystemML.h"
#include "mlTypeTraits.h"

Go to the source code of this file.

Functions

Test for standard (built-in) typed pointers: Return 1 (=true) for standard types and otherwise return 0(=false).

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.

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 *)
 

Function Documentation

◆ MLGetDataTypeFromPtr()

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

Definition at line 52 of file mlTemplateSupport.h.

◆ MLGetDataTypeSizeFromPtr()

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

Definition at line 58 of file mlTemplateSupport.h.

◆ MLIs16BitIntegerTypePtr()

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

Definition at line 76 of file mlTemplateSupport.h.

◆ MLIs32BitIntegerTypePtr()

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

Definition at line 82 of file mlTemplateSupport.h.

◆ MLIs64BitIntegerTypePtr()

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

Definition at line 88 of file mlTemplateSupport.h.

◆ MLIs8_16_Or_32BitIntegerTypePtr()

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

Definition at line 64 of file mlTemplateSupport.h.

◆ MLIs8BitIntegerTypePtr()

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

Definition at line 70 of file mlTemplateSupport.h.

◆ MLIsBuiltInFloatingPointTypePtr()

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

Definition at line 100 of file mlTemplateSupport.h.

◆ MLIsBuiltInIntegerTypePtr()

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

Definition at line 94 of file mlTemplateSupport.h.

◆ MLIsScalarTypePtr()

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

Definition at line 39 of file mlTemplateSupport.h.

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

◆ MLIsSignedTypePtr()

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

Definition at line 46 of file mlTemplateSupport.h.