释放是否意味着破坏?
Does deallocation imply destruction?
更具体地说,在 C++ 中,std::allocator_traits<T>::deallocate
是否意味着 std::allocator_traits<T>::destroy
?
不行,你要记得给自己打电话destroy()
。分配器不知道哪些对象已经构造,哪些只是分配。
例如,在向量中,分配了对象 0 到 v.capacity()-1
,但只构造了对象 0 到 v.size()-1
。
更具体地说,在 C++ 中,std::allocator_traits<T>::deallocate
是否意味着 std::allocator_traits<T>::destroy
?
不行,你要记得给自己打电话destroy()
。分配器不知道哪些对象已经构造,哪些只是分配。
例如,在向量中,分配了对象 0 到 v.capacity()-1
,但只构造了对象 0 到 v.size()-1
。