cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Macros | Functions
cmnRequiresDeepCopy.h File Reference

Declaration of cmnRequiresDeepCopy. More...

#include <cisstCommon/cmnPortability.h>
#include <cisstCommon/cmnRequiresDeepCopy.h>

Go to the source code of this file.

Macros

#define _cmnRequiresDeepCopy_h
 

Functions

template<class _elementType >
bool cmnRequiresDeepCopy (void)
 
template<>
bool cmnRequiresDeepCopy< float > (void)
 
template<>
bool cmnRequiresDeepCopy< double > (void)
 
template<>
bool cmnRequiresDeepCopy< long double > (void)
 
template<>
bool cmnRequiresDeepCopy< bool > (void)
 
template<>
bool cmnRequiresDeepCopy< char > (void)
 
template<>
bool cmnRequiresDeepCopy< unsigned char > (void)
 
template<>
bool cmnRequiresDeepCopy< short > (void)
 
template<>
bool cmnRequiresDeepCopy< unsigned short > (void)
 
template<>
bool cmnRequiresDeepCopy< int > (void)
 
template<>
bool cmnRequiresDeepCopy< unsigned int > (void)
 
template<>
bool cmnRequiresDeepCopy< long long int > (void)
 
template<>
bool cmnRequiresDeepCopy< unsigned long long int > (void)
 

Detailed Description

Declaration of cmnRequiresDeepCopy.

Macro Definition Documentation

#define _cmnRequiresDeepCopy_h

Function Documentation

template<class _elementType >
bool cmnRequiresDeepCopy ( void  )

Templated global function used to determine if a type/class requires deep copy or not. To be safe, the assumption is that all types require deep copy. To avoid deep copies, the user must specialize this function for any new type.

template<>
bool cmnRequiresDeepCopy< bool > ( void  )
inline
template<>
bool cmnRequiresDeepCopy< char > ( void  )
inline
template<>
bool cmnRequiresDeepCopy< double > ( void  )
inline
template<>
bool cmnRequiresDeepCopy< float > ( void  )
inline

Template specialization for native C/C++ types. The assumption is that native types don't need deep copy.

template<>
bool cmnRequiresDeepCopy< int > ( void  )
inline
template<>
bool cmnRequiresDeepCopy< long double > ( void  )
inline
template<>
bool cmnRequiresDeepCopy< long long int > ( void  )
inline
template<>
bool cmnRequiresDeepCopy< short > ( void  )
inline
template<>
bool cmnRequiresDeepCopy< unsigned char > ( void  )
inline
template<>
bool cmnRequiresDeepCopy< unsigned int > ( void  )
inline
template<>
bool cmnRequiresDeepCopy< unsigned long long int > ( void  )
inline
template<>
bool cmnRequiresDeepCopy< unsigned short > ( void  )
inline