//lint -e1775
//lint -e1795
#ifndef VOS_COMMON_H_INCLUDE
#define VOS_COMMON_H_INCLUDE
#pragma warning(disable : 4786 4503 4996)
#include <stdlib.h>
template<class T>
T* VOS_NEW(T* &m, unsigned long ulMuili = 0)
{
try
{
if (ulMuili == 0)
{
m = new(T);
}
else
{
m = new(T[ulMuili]);
}
return m;
}
catch(...)
{
m = NULL;
return NULL;
}
};
enum DELETE_MULTI
{
SINGLE = 0,
MULTI = 1
};
template<class T>
void VOS_DELETE(T* &m, unsigned long ulMuili = 0)
{
if (NULL == m)
{
return;
}
__try
{
if (0 == ulMuili)
{
delete m;
}
else
{
delete[] m;
}
}
__except(1)
{
}
m = NULL;
};
//将空指针安全转化为真实指针
template<class T>
T* VOS_CAST(T* pVoid)
{
T* pReal = NULL;
try
{
pReal = dynamic_cast<T*>(pVoid);
}
catch(...)
{
pReal = NULL;
}
return pReal;
};
#endif //VOS_COMMON_H_INCLUDE