泛型類型刪除值假設你有一個類,如:只有當它是一個指針
template<typename T>
class Foo
{
public:
T value;
public:
Foo(const T& value)
{
this->value = value;
}
public:
~Foo()
{
if(std::is_pointer<T>::value) delete value;
}
}
現在,很明顯,如果T
不是指針,編譯器將拋出一個錯誤。例如:
Foo<int> foo(42);
有沒有辦法成功地檢查是否T
是一個指針,刪除它,如果它是,沒有一個編譯器錯誤?