<分区>
Possible Duplicate:
Determine if Type is a pointer in a template function
我正在寻找一种在编译时确定模板是否为指针的方法。因为当 T 不是指针时,程序将无法编译,因为您无法删除普通类型变量。
template <typename T>
void delete(T &aVar)
{
// if T is a point
delete aVar;
aVar = 0;
// if T is not a point, do nothing
}
基本上,我正在学习自己创建链接列表(不使用 STL 列表)。我尝试在我的列表中使用模板,因此它可以采用任何类型。当类型是指针时,我想通过析构函数自动删除它(关键字delete)。
问题是,如上所述,当我使用 int 而不是列表中某个类的指针时,VC2010 将无法编译,因为您无法删除非指针变量。所以我正在寻找一种方法,例如根据模板类型在删除 aVar 时应编译或不编译的宏来决定