今天看STL原始碼分析,內部一個destroy函式
template <class T>
inline void destroy(T* pointer)
{
pointer->~T();
}
當T為int的時候,如:
int *ptr = new int;
destroy(ptr);
這樣就可以編譯通過,而直接ptr->~int();就報錯。
這是為什么啊,求指點。
uj5u.com熱心網友回復:
析構一般不直接呼叫template <class T>
inline void destroy(T* pointer)
{
delete pointer;
}
uj5u.com熱心網友回復:
placement new。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/140551.html
標籤:基礎類
