使用new时,优势将指针转换为void*

ice*_*y96 23 c++ stl

stl_construct.h 具有以下功能:

template<typename _T1, typename _T2>
inline void
_Construct(_T1* __p, const _T2& __value)
{
   ::new(static_cast<void*>(__p)) _T1(__value);
}
Run Code Online (Sandbox Code Playgroud)

我想知道为什么铸造__pvoid*是必要的,它有什么优势?

Bri*_*ian 24

它保证调用预定义的placement new运算符,而不是由具有签名的用户代码添加到全局名称空间的任何重载void* operator new(std::size_t, _T1*).