Files
envi-code/SourceCode/Code2026/inc/memOper.h
T
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

68 lines
997 B
C++

#pragma once
namespace MemOper
{
template <class T>
void DELETE_PTR(T *&ptr)
{
if (ptr != NULL)
{
delete ptr;
ptr = NULL;
}
}
template <class T>
void DELETE_ARR_(T *&arr)
{
if (arr != NULL)
{
delete[] arr;
arr = NULL;
}
}
template <class T>
void deleteContainerOfStd(T &ss)
{
typename T::iterator it(ss.begin());
for (; it != ss.end(); ++it)
delete(*it);
ss.clear();
}
template <class T>
void deleteContainerOfArx(AcArray<T*> &ss)
{
for (int i = 0; i < ss.length(); ++i)
{
T *p = ss[i];
if (p)
delete p;
}
ss.removeAll();
}
// 删除 arx 容器内的指针 只指对AcArray及派生类
template <class T1, class T2>
void deleteContainerOfArx(T1 &ss)
{
for (int i = 0; i < ss.length(); ++i)
{
T2 *p = (T2*)ss[i];
delete p;
}
ss.removeAll();
}
// delete AcArrayVoidPtrs
template <class T>
void deleteArrayVoidPtrs(AcDbVoidPtrArray &ptrs)
{
deleteContainerOfArx<AcDbVoidPtrArray, T>(ptrs);
}
};